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 相关文章推荐
摘自启点的main.js
Apr 20 Javascript
纯文字版返回顶端的js代码
Aug 01 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
jQuery+Pdo编写login登陆界面
Aug 01 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
vue非父子组件通信问题及解决方法
Jun 11 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
微信小程序一周时间表功能实现
Oct 17 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
JavaScript中document.activeELement焦点元素介绍
Nov 27 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横向重复区域显示二法
2008/09/25 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
php实现网页端验证码功能
2017/07/11 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
jquery等待效果示例
2014/05/01 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
基于Python的文件类型和字符串详解
2017/12/21 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
基于python的Paxos算法实现
2019/07/03 Python
解决yum对python依赖版本问题
2019/07/05 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
销售员自我评价
2015/03/11 职场文书
小学语文国培研修日志
2015/11/13 职场文书