按照数组中的对象属性进行比较排序

在对数组中的对象进行操作时,有些需求是按照数组中的对象的 某一项属性 进行排序,下面是一种方法,亲测好用,分享给大家:

<script>
    var arry = [
      { value: 6, name: "张三", age: 23 },
      { value: 3, name: "李四", age: 34 },
      { value: 9, name: "王二", age: 13 },
    ];
    function compare(property) {
      //按照数组中的对象属性进行排序
      return function (a, b) {
        var val1 = a[property];
        var val2 = b[property];
        return val1 - val2;
      };
    }
    //按照数组中的value属性进行比较排序
    var res = arry.sort(compare("value"));
    console.log(res);
    console.log(arry); //会改变原数组
   
  </script>

从结果可以看到,数组中的对象按照value的大小进行了排序,同时原数组也改变了;

<script>
    var arry = [
      { value: 6, name: "张三", age: 23 },
      { value: 3, name: "李四", age: 34 },
      { value: 9, name: "王二", age: 13 },
    ];
    function compare(property) {
      //按照数组中的对象属性进行排序
      return function (a, b) {
        var val1 = a[property];
        var val2 = b[property];
        return val1 - val2;
      };
    }
    // 按照数组中的age属性进行比较排序
    var res = arry.sort(compare("age"));
    console.log(res);
  </script>

可以看到,这次是按照数组中对象的age属性进行的排序。

数组中对象排序方法还有很多,希望我可以和大家共同探讨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值