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 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
Feb 27 Javascript
web性能优化之javascript性能调优
Dec 28 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
从vue源码看props的用法
Jan 09 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
Mar 04 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 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
如何正确理解PHP的错误信息
2006/10/09 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
PHP 实现链式操作
2021/03/09 PHP
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
Python生成8位随机字符串的方法分析
2017/12/05 Python
python变量的存储原理详解
2019/07/10 Python
Django中URL的参数传递的实现
2019/08/04 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
个人找工作求职简历的自我评价
2013/10/20 职场文书
大学生校园创业计划书
2014/02/08 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
电台广播稿范文
2015/08/19 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android