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编程起步(第五课)
Jan 10 Javascript
jquery 全局AJAX事件使用代码
Nov 05 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
jquery选择器使用详解
Apr 08 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
Sep 13 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
使用watch在微信小程序中实现全局状态共享
Jun 03 Javascript
vue实现树形结构样式和功能的实例代码
Oct 15 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
小程序开发之模态框组件封装
Apr 23 Javascript
vue移动端写的拖拽功能示例代码
Sep 09 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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
php DES加密算法实例分析
2019/09/18 PHP
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
vue中$refs的用法及作用详解
2018/04/24 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
python计算书页码的统计数字问题实例
2014/09/26 Python
python append、extend与insert的区别
2016/10/13 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python接口测试get请求过程详解
2020/02/28 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python实现KNN近邻算法
2020/12/30 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
大型主题婚礼活动策划方案
2014/09/15 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
golang 实现并发求和
2021/05/08 Golang