JS实现json数组排序操作实例分析


Posted in Javascript onOctober 28, 2019

本文实例讲述了JS实现json数组排序操作。分享给大家供大家参考,具体如下:

有时需要根据json对象的某个属性排序json数组,javascript端有sort这个函数,具体可以参考:http://www.w3school.com.cn/jsref/jsref_sort.asp

我们可以传入一个对比函数,我实现了两个:一个降序排列,一个升序排列

/**
 * json对象数组按照某个属性排序:降序排列
 * @param {Object} propertyName
 */
function compareDesc(propertyName) {
  return function(object1, object2) {
    var value1 = object1[propertyName];
    var value2 = object2[propertyName];
    if(value2 < value1) {
      return -1;
    } else if(value2 > value1) {
      return 1;
    } else {
      return 0;
    }
  }
}
/**
 * json对象数组按照某个属性排序:升序排列
 * @param {Object} propertyName
 */
function compareAsc(propertyName) {
  return function(object1, object2) {
    var value1 = object1[propertyName];
    var value2 = object2[propertyName];
    if(value2 < value1) {
      return 1;
    } else if(value2 > value1) {
      return -1;
    } else {
      return 0;
    }
  }
}

例子:

var students=[{name:"hhhh",age:16},{name:"ggggg",age:17},{name:"dsdsad",age:18}];
students.sort(compareDesc("age"));  //按照年龄降序排列
console.log(students);

运行结果:

JS实现json数组排序操作实例分析

var students=[{name:"hhhh",age:16},{name:"ggggg",age:17},{name:"dsdsad",age:18}];
students.sort(compareAsc("age"));  //按照年龄升序排列
console.log(students);

运行结果:

JS实现json数组排序操作实例分析

Javascript 相关文章推荐
IE JS编程需注意的内存释放问题
Jun 23 Javascript
初窥JQuery(一)jquery选择符 必备知识点
Nov 25 Javascript
javascript之bind使用介绍
Oct 09 Javascript
解析jquery中的ajax缓存问题
Dec 19 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
比较常见的javascript中定义函数的区别
Nov 09 Javascript
基于JavaScript代码实现自动生成表格
Jun 15 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
浅谈JavaScript的闭包函数
Dec 08 Javascript
angular分页指令操作
Jan 09 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
Jan 20 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 #Javascript
vue实现在v-html的html字符串中绑定事件
Oct 28 #Javascript
vue 实现input表单元素的disabled示例
Oct 28 #Javascript
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 #jQuery
VUE解决 v-html不能触发点击事件的问题
Oct 28 #Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
Oct 28 #Javascript
vue动态禁用控件绑定disable的例子
Oct 28 #Javascript
You might like
smtp邮件发送一例
2006/10/09 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
angular json对象push到数组中的方法
2018/02/27 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python3 深浅copy对比详解
2019/08/12 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
Python异常处理机制结构实例解析
2020/07/23 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
大学生入党自我鉴定
2013/10/31 职场文书
单位刻章介绍信范文
2014/01/11 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
三方协议书范本
2014/04/22 职场文书
毕业生个人总结
2015/02/28 职场文书
签证工作证明模板
2015/06/15 职场文书
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android