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与css打造个性化的单选框和复选框
Oct 20 Javascript
juqery 学习之四 筛选查找
Nov 30 Javascript
jQuery 源码分析笔记(7) Queue
Jun 19 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
Node.js系列之安装配置与基本使用(1)
Aug 30 Javascript
JS+DIV实现拖动效果
Feb 11 Javascript
viewer.js实现图片预览功能
Jun 24 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
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Flask-Mail用法实例分析
2018/07/21 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
求职信范文怎么写
2014/01/29 职场文书
先进集体获奖感言
2014/02/13 职场文书
2014年教师节寄语
2014/04/03 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
毕业证委托书范文
2014/09/26 职场文书
党委领导班子整改方案
2014/09/30 职场文书
成本会计实训报告
2014/11/05 职场文书
出纳岗位职责范本
2015/03/31 职场文书
党支部审查意见
2015/06/02 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
科级干部培训心得体会
2016/01/06 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书