欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 13:51:00
...

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

<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属性进行的排序。

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