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实现简单的时钟实例代码
Nov 23 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
JS实现网页标题随机显示名人名言的方法
Nov 03 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
JavaScript获取ul中li个数的方法
Feb 13 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 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字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
回顾Javascript React基础
2019/06/15 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
Python中的map、reduce和filter浅析
2014/04/26 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python正则表达式的使用
2017/06/12 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
全国道德模范事迹
2014/02/01 职场文书
村抢险救灾方案
2014/05/09 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
golang生成并解析JSON
2022/04/14 Golang