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 第二课 操作包装集元素代码
Mar 14 Javascript
js实现数字每三位加逗号的方法
Feb 05 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
Jan 27 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
浅谈javascript的闭包
Jan 23 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
javaScript封装的各种写法
Aug 14 Javascript
使用classList来实现两个按钮样式的切换方法
Jan 24 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
vue 遮罩层阻止默认滚动事件操作
Jul 28 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生成自己的LOG文件
2006/10/09 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
详解Node中导入模块require和import的区别
2017/08/11 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
python常规方法实现数组的全排列
2015/03/17 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
Python如何存储数据到json文件
2020/03/09 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
小学生安全演讲稿
2014/04/25 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
世界名著读书笔记
2015/06/25 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js