Ответ 1
Используйте метод Array
sort()
, например
myArray.sort(function(a, b) {
return a.distance - b.distance;
});
Как бы вы отсортировали этот массив с этими объектами по расстоянию. Итак, у вас есть объекты, отсортированные с наименьшего расстояния до самого большого расстояния?
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...}
Используйте метод Array
sort()
, например
myArray.sort(function(a, b) {
return a.distance - b.distance;
});
Здесь так же, как текущий топ-ответ, но в однострочнике ES6:
myArray.sort((a, b) => a.distance - b.distance);
Не сильно отличается от ответов, которые уже даны, но более общим является:
sortArrayOfObjects = (arr, key) => {
return arr.sort((a, b) => {
return a[key] - b[key];
});
};
sortArrayOfObjects(yourArray, "distance");
Если значение ключа имеет тип string
, вы можете использовать метод localeCompare
, например:
users.sort((a, b) => a.name.localeCompare(b.name));
Это сработало для меня
var files=data.Contents;
files = files.sort(function(a,b){
return a.LastModified - b. LastModified;
});
ИЛИ используйте Lodash для сортировки массива
files = _.orderBy(files,'LastModified','asc');