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 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
js实现精确到毫秒的倒计时效果
Aug 05 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
Dec 26 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
Jan 05 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
简单谈谈原生js的math对象
Jun 27 Javascript
浅谈vue-router 路由传参的方法
Dec 27 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
mpvue 单文件页面配置详解
Dec 02 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 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面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python访问系统环境变量的方法
2015/04/29 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python非递归全排列实现方法
2017/04/10 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python中 map()函数的用法详解
2018/07/10 Python
python 实现单通道转3通道
2019/12/03 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python中的流程控制详解
2021/02/18 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
学期自我鉴定范文
2013/10/01 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
医学专业大学生求职信
2014/07/12 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
个人务虚会发言材料
2014/10/20 职场文书