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类
Sep 08 Javascript
贴一个在Mozilla中常用的Javascript代码
Jan 09 Javascript
js 判断checkbox是否选中的实现代码
Nov 23 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
JQuery日期插件datepicker的使用方法
Mar 03 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
Jun 29 Javascript
详解小程序设置缓存并且不覆盖原有数据
Apr 15 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
vue中的循环对象属性和属性值用法
Sep 04 Javascript
js实现三角形粒子运动
Sep 22 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
珊瑚虫IP库浅析
2007/02/15 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
vue.js中created方法作用
2018/03/30 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
青安岗事迹材料
2014/05/14 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
Redis读写分离搭建的完整步骤
2021/09/14 Redis
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python