JavaScript对JSON数组简单排序操作示例


Posted in Javascript onJanuary 31, 2019

本文实例讲述了JavaScript对JSON数组简单排序操作。分享给大家供大家参考,具体如下:

我们经常回使用到数据格式

var arr=[{num:1},{num:3},{num:2}]

如何根据数组里面的JSON数据的某个key进行排序

javascript有一个sort()方法,直接通过 arr.sort()进行排序,默认只对数组的值进行排序,然而以上的数组的值却是个JSON格式的。

我们在看看sort方法的定义:

定义和用法

sort() 方法用于对数组的元素进行排序。

语法

arrayObject.sort(sortby)

参数 描述
sortby 可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

所以重点在于sortby这个参数的规则。根据以上的说明我们可以创建一个规则函数

var arr=[{num:1},{num:3},{num:2}]
function newSort(x,y)
{
return x.num-y.num;
}
console.log(arr.sort(newSort));//完成排序,如果JSON里面的不是数字,则需要在newSort里面做一下处理
//比如:如果num的值是_1而不是数字1 则 return x.state.substr(1,1)-y.state.substr(1,1);

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得到如下运行结果:

JavaScript对JSON数组简单排序操作示例

Javascript 相关文章推荐
Javascript 面向对象 命名空间
May 13 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
javascript实现连续赋值
Aug 10 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
Feb 23 Javascript
vuex进阶知识点巩固
May 20 Javascript
实例讲解v-if和v-show的区别
Jan 31 #Javascript
详解使用angular框架离线你的应用(pwa指南)
Jan 31 #Javascript
Angular PWA使用的Demo示例
Jan 31 #Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 #Javascript
微信小程序开发的基本流程步骤
Jan 31 #Javascript
JSON的parse()方法介绍
Jan 31 #Javascript
JSON.stringify()方法讲解
Jan 31 #Javascript
You might like
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
使用Python对SQLite数据库操作
2017/04/06 Python
python抽取指定url页面的title方法
2018/05/11 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
巴西在线鞋店:Shoestock
2017/10/28 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
素食餐饮项目创业计划书
2014/02/02 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
索尼ICF-5900W收音机测评
2022/04/24 无线电