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 相关文章推荐
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
React Router基础使用
Jan 17 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
May 22 Javascript
JS实现键值对遍历json数组功能示例
May 30 Javascript
javascript中可能用得到的全部的排序算法
Mar 05 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 Javascript
vue组件中实现嵌套子组件案例
Aug 31 Javascript
JavaScript实现点击图片换背景
Nov 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
详解php命令注入攻击
2019/04/06 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
javascript AutoScroller 函数类
2009/05/29 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
js 覆盖和重载 函数
2009/09/25 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
儿童python练习实例
2018/05/27 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
局域网定义和特性
2016/01/23 面试题
学生会个人自荐书范文
2014/02/12 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
大学军训感言1000字
2014/02/25 职场文书
工会工作个人总结
2015/03/03 职场文书
毕业典礼主持词
2015/06/29 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android