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 相关文章推荐
Flash+XML滚动新闻代码 无图片 附源码下载
Nov 22 Javascript
jquery tools 系列 scrollable(2)
Sep 06 Javascript
Google Dart编程语法和基本类型学习教程
Nov 27 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 Javascript
JavaScript制作简易计算器(不用eval)
Feb 05 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
Jun 19 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
Jan 07 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 Javascript
【js设计模式】SOLID五大设计原则
Mar 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php购物车实现代码
2011/10/10 PHP
PHP实现下载功能的代码
2012/09/29 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
8种常用的Python工具
2020/08/05 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
《画家乡》教学反思
2014/04/22 职场文书
低碳环保口号
2014/06/12 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书