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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
JS 继承实例分析
Nov 04 Javascript
jQuery 使用个人心得
Feb 26 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
javascript 数组的定义和数组的长度
Jun 07 Javascript
基于vue实现swipe分页组件实例
May 25 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 jQuery
Vue 3.x+axios跨域方案的踩坑指南
Jul 04 Javascript
JavaScript 面向对象基础简单示例
Oct 02 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
php5 and xml示例
2006/11/22 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
加载 Javascript 最佳实践
2011/10/30 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
python实现随机密码字典生成器示例
2014/04/09 Python
Python实现基于HTTP文件传输实例
2014/11/08 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
30岁生日感言
2014/01/25 职场文书
手机被没收检讨书
2014/02/22 职场文书
2014年食堂工作总结
2014/11/20 职场文书
公司门卫岗位职责
2015/04/13 职场文书
小学教代会开幕词
2016/03/04 职场文书
工作建议书范文
2019/07/08 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android