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 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
jquery 笔记 事件
Nov 02 Javascript
Javascript中的Callback方法浅析
Mar 15 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
深入浅析Vue中的Prop
Jun 10 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 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文件中bom的PHP代码
2012/03/13 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
js中replace的用法总结
2013/12/27 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
在Django的上下文中设置变量的方法
2015/07/20 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Django视图和URL配置详解
2018/01/31 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
python安装教程
2018/02/28 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
基于python实现文件加密功能
2020/01/06 Python
python关于变量名的基础知识点
2020/03/03 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
学校办公室主任职责
2013/12/27 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
出国签证在职证明
2014/01/16 职场文书
2014最新离职证明范本
2014/09/12 职场文书
学校联谊协议书
2014/09/16 职场文书
网吧员工管理制度
2015/08/05 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
高中政治教学反思
2016/02/23 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
详解Flask开发技巧之异常处理
2021/06/15 Python