web-dev-qa-db-ja.com

オブジェクトキー値によるJavaScriptの配列の並べ替え

この配列を距離でどのように並べ替えますか?オブジェクトを最小距離から最大距離まで並べ替えますか?

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...}
44
Harry

Array 's sort() method を使用します。例:

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

これは現在のトップアンサーと同じですが、ES6のワンライナーです。

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

5
Jon Tonti

キー値がstringのタイプである場合、次のようなlocaleCompareメソッドを使用できます。

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

既に与えられた答えとは大きく異なりませんが、より一般的なものは次のとおりです。

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

sortArrayOfObjects(yourArray, "distance");
2

これは私のために働いた

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

またはLodashを使用して配列を並べ替えます

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