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 相关文章推荐
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
ES6模块化的import和export用法方法总结
Aug 08 Javascript
在vue项目中集成graphql(vue-ApolloClient)
Sep 08 Javascript
基于JavaScript实现十五拼图代码实例
Apr 26 Javascript
JS如何实现手机端输入验证码效果
May 13 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
《欢乐的泼水节》教学反思
2014/04/22 职场文书
迎新晚会策划方案
2014/06/13 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
监护人证明
2015/06/19 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
离婚民事起诉状
2015/08/03 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书