按对象键值在javascript中对数组进行排序

时间:2011-10-25 12:05:20

标签: javascript arrays sorting object

如何按距离对这些对象进行排序。这样你就可以将物体从最小距离到最大距离进行分类?

Object { distance=3388, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=13564, duration="12 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=4046, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

Object { distance=11970, duration="17 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}

9 个答案:

答案 0 :(得分:76)

使用Array's sort() method,例如

myArray.sort(function(a, b) {
    return a.distance - b.distance;
});

答案 1 :(得分:6)

下面是带有可接受答案的示例:

 a = [{name:"alex"},{name:"clex"},{name:"blex"}];

升序:

a.sort((a,b)=> (a.name > b.name ? 1 : -1))

输出:[{name: "alex"}, {name: "blex"},{name: "clex"} ]

下降:

a.sort((a,b)=> (a.name < b.name ? 1 : -1))

输出:[{name: "clex"}, {name: "blex"}, {name: "alex"}]

答案 2 :(得分:2)

与已经给出的答案没什么不同,但更通用的是:

sortArrayOfObjects = (arr, key) => {
    return arr.sort((a, b) => {
        return a[key] - b[key];
    });
};

sortArrayOfObjects(yourArray, "distance");

答案 3 :(得分:1)

此处与当前的最高答案相同,但使用ES6一线式:

myArray.sort((a, b) => a.distance - b.distance);

答案 4 :(得分:0)

这对我有用

var files=data.Contents;
          files = files.sort(function(a,b){
        return a.LastModified - b. LastModified;
      });

或者使用Lodash对数组进行排序

files = _.orderBy(files,'LastModified','asc');

答案 5 :(得分:0)

对于我来说,我需要按字符串“名称”进行排序

users.sort((a, b) => a.name.localeCompare(b.name));

答案 6 :(得分:0)

这是您的另一种选择:

const insertSkid = skidToClone => {
  setSkidList(skidList.concat([{ ...skidToClone }]));
}; 

答案 7 :(得分:0)

ES6 箭头函数:

const orderArrayBy = (arr, key) => arr.sort((a, b) => a[key] - b[key]);

答案 8 :(得分:0)

推送数组 myArray 中的所有对象,然后使用 this 应用排序。

myArray.sort(function(a, b) {
    return a.distance - b.distance;
});