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 相关文章推荐
jQuery 源代码显示控件 (Ajax加载方式).
May 18 Javascript
jQuery编写widget的一些技巧分享
Oct 28 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
使用js 设置url参数
Jul 08 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
May 09 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 Javascript
区分vue-router的hash和history模式
Oct 03 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
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
js单词形式的运算符
2014/05/06 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现随机选择元素功能
2017/09/14 Python
python序列化与数据持久化实例详解
2019/12/20 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
英国袜子店:Sock Shop
2017/01/11 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
关于爱情的广播稿
2014/01/16 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
红旗渠导游词
2015/02/09 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
Docker安装MySql8并远程访问的实现
2022/07/07 Servers