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数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
Sep 06 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
Apr 29 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
angular多语言配置详解
May 16 Javascript
vue element-ui实现动态面包屑导航
Dec 23 Javascript
JavaScript 对象创建的3种方法
Nov 17 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中让人头疼的浮点数运算分析
2016/10/10 PHP
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
js new Date()实例测试
2019/10/31 Javascript
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python thread 并发且顺序运行示例
2009/04/09 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
快餐店的创业计划书范文
2014/01/29 职场文书
推广普通话演讲稿
2014/05/23 职场文书
装修施工安全责任书
2014/07/24 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
运动会3000米加油稿
2015/07/21 职场文书
孙振耀退休感言
2015/08/01 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
python基础之文件处理知识总结
2021/05/23 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
java executor包参数处理功能 
2022/02/15 Java/Android