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 相关文章推荐
HTML中事件触发列表与解说
Jul 09 Javascript
JavaScript 字符串乘法
Aug 20 Javascript
可以将word转成html的js代码
Apr 11 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
Nov 20 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
JavaScript判断微信浏览器实例代码
Jun 13 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
用move.js库实现百叶窗特效
Feb 08 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
Oct 27 Javascript
vue基础知识--axios合并请求和slot
Jun 04 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 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中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
学习Node.js模块机制
2016/10/17 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
Python写入数据到MP3文件中的方法
2015/07/10 Python
python实现log日志的示例代码
2018/04/28 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python  logging日志打印过程解析
2019/10/22 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Django model class Meta原理解析
2020/11/14 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
linux面试题参考答案(5)
2014/09/01 面试题
师范毕业生自荐信
2013/10/17 职场文书
建筑设计师岗位职责
2013/11/18 职场文书
机关门卫岗位职责
2013/12/30 职场文书
三年级评语大全
2014/04/23 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
学会Python数据可视化必须尝试这7个库
2021/06/16 Python