JS sort方法基于数组对象属性值排序


Posted in Javascript onJuly 10, 2020

sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同.

var arr = [
  {name:'zopp',age:0},
  {name:'gpp',age:18},
  {name:'yjj',age:8}
];

function compare(property){
  return function(a,b){
    var value1 = a[property];
    var value2 = b[property];
    return value1 - value2;
  }
}
console.log(arr.sort(compare('age')))

JS sort方法基于数组对象属性值排序

如何根据参数不同,来确定是升序排列,还是降序排序呢?

/**数组根据数组对象中的某个属性值进行排序的方法 
   * 使用例子:newArray.sort(sortBy('number',false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序
   * @param attr 排序的属性 如number属性
   * @param rev true表示升序排列,false降序排序
   * */
  sortBy: function(attr,rev){
    //第二个参数没有传递 默认升序排列
    if(rev == undefined){
      rev = 1;
    }else{
      rev = (rev) ? 1 : -1;
    }
    
    return function(a,b){
      a = a[attr];
      b = b[attr];
      if(a < b){
        return rev * -1;
      }
      if(a > b){
        return rev * 1;
      }
      return 0;
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
QUnit jQuery的TDD框架
Nov 04 Javascript
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
jQuery学习笔记之总体架构
Jun 03 Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 Javascript
vuex的简单使用教程
Feb 02 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
vue实现登录拦截
Jun 29 Javascript
JavaScript中10个Reduce常用场景技巧
Jun 21 Javascript
JavaScript this指向相关原理及实例解析
Jul 10 #Javascript
JavaScript indexOf()原理及使用方法详解
Jul 09 #Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 #Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
Jul 09 #Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 #Javascript
jQuery实现B2B网站后台管理系统侧导航
Jul 08 #jQuery
ssm+vue前后端分离框架整合实现(附源码)
Jul 08 #Javascript
You might like
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP制作万年历
2015/01/07 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
ppk谈JavaScript style属性
2008/10/10 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
对于Python装饰器使用的一些建议
2015/06/03 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
红领巾广播站广播稿
2014/02/01 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
调解协议书
2014/04/16 职场文书
党员教师一句话承诺
2014/05/30 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
大学生党员个人总结
2015/02/13 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript