专栏首页web前端技术分享js sort方法根据数组中对象的某一个属性值进行排序

js sort方法根据数组中对象的某一个属性值进行排序

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')))

如何根据参数不同,来确定是升序排列,还是降序排序呢?

//数组根据数组对象中的某个属性值进行排序的方法 
     //使用例子: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;
        }
    }

转载:https://www.cnblogs.com/yuwenjing0727/p/6856991.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JS实现深浅拷贝

    TimothyJia
  • 使用element-ui中table expand展开行控制显示隐藏(手风琴效果)

    问题讲解: 在使用vue版本的ElementUI中的table功能的时候还是遇到了一些问题,可以说饿了么团队在这个UI框架的文档撰写已经非常不错了,不过还是有一...

    TimothyJia
  • JS中的NaN和isNaN,简直是双重人格?

    isNaN的用法:检测当前值是否不是有效数字,返回true代表不是有效数字,返回false是有效数字

    TimothyJia
  • Laravel框架FormRequest中重写错误处理的方法

    laravel 框架中默认的validate验证,在处理错误的时候,默认是返回上一页,当为ajax的时候才会返回Json。如果我们要一直返回Json的话,那么需...

    砸漏
  • web开发框架Flask学习一

    py3study
  • Brison归因与代码

          不管是做FOF也好,仅仅想单纯归因也好,Brison是一种比较常见,也算是通用的归因方法,其一般用于权益类或者大类资产配置类基金。

    钱塘小甲子
  • Yii框架ACF(accessController)简单权限控制操作示例

    本文实例讲述了Yii框架ACF(accessController)简单权限控制操作。分享给大家供大家参考,具体如下:

    砸漏
  • Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0

    以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基...

    朱季谦
  • leetcode: 7.Reverse Integer

    JNingWei
  • yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[下篇]

    昨天写了《yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]》,引起了一些讨论。关于yield关键字这个语法糖背后的原理(C#编译器将它...

    蒋金楠

扫码关注云+社区

领取腾讯云代金券