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

Har*_*rry 51 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...}
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 98

使用Arraysort()方法,例如,

myArray.sort(function(a, b) {
    return a.distance - b.distance;
});
Run Code Online (Sandbox Code Playgroud)

  • @SebastianSimon,这与其说是一个替代方案,不如说它是同一件事,但语法上多了 10 个字符。马铃薯/番茄 (4认同)

小智 34

这是一个接受答案的例子:

 a = [{name:"alex"},{name:"clex"},{name:"blex"}];
Run Code Online (Sandbox Code Playgroud)

对于升序:

a.sort((a,b)=> (a.name > b.name ? 1 : -1))
Run Code Online (Sandbox Code Playgroud)

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

递减:

a.sort((a,b)=> (a.name < b.name ? 1 : -1))
Run Code Online (Sandbox Code Playgroud)

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


Vin*_*rma 5

这对我有用

var files=data.Contents;
          files = files.sort(function(a,b){
        return a.LastModified - b. LastModified;
      });
Run Code Online (Sandbox Code Playgroud)

或使用 Lodash 对数组进行排序

files = _.orderBy(files,'LastModified','asc');
Run Code Online (Sandbox Code Playgroud)


Art*_*ker 5

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

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

sortArrayOfObjects(yourArray, "distance");
Run Code Online (Sandbox Code Playgroud)


小智 5

这与当前的最佳答案相同,但使用ES6一线式:

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


HMa*_*gdy 5

如果键值是type,则string可以使用如下localeCompare方法:

users.sort((a, b) => a.name.localeCompare(b.name));
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

64238 次

最近记录:

6 年,1 月 前