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 相关文章推荐
JS不间断向上滚动效果代码
Dec 25 Javascript
Javascript保存网页为图片借助于html2canvas库实现
Sep 05 Javascript
使用js画图之正弦曲线
Jan 12 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
详解javascript事件冒泡
Jan 09 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
第三篇Bootstrap网格基础
Jun 21 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
详解Vue路由开启keep-alive时的注意点
Jun 20 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
Vue最新防抖方案(必看篇)
Oct 30 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冒泡排序
2014/12/30 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
JavaScript国旗变换效果代码
2008/08/13 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python六大开源框架对比
2015/10/19 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python日志syslog使用原理详解
2020/02/18 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
如何让python的运行速度得到提升
2020/07/08 Python
django 模型字段设置默认值代码
2020/07/15 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
幼儿园实习生辞职信
2014/01/20 职场文书
机电一体化专业求职信
2014/07/22 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技