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 表单中textarea字数限制实现代码
Dec 07 Javascript
JQuery动态给table添加、删除行 改进版
Jan 19 Javascript
各情景下元素宽高的获取实现代码
Sep 13 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
JavaScript实现获取dom中class的方法
Feb 09 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
jQuery设计思想
Mar 07 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
vue3实现v-model原理详解
Oct 09 Javascript
纯js+css实现在线时钟
Aug 18 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通过COM类调用组件的实现代码
2012/01/11 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
利用PHP实现短域名互转
2013/07/05 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python中psutil的介绍与用法
2019/05/02 Python
wxPython实现列表增删改查功能
2019/11/19 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
Python ellipsis 的用法详解
2020/11/20 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
如何写好自荐信
2014/04/07 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
小组名称和口号
2014/06/09 职场文书