Сортировка массивов в javascript по значению ключа объекта - PullRequest
41 голосов
/ 25 октября 2011

Как бы вы отсортировали этот массив с этими объектами по расстоянию.Итак, у вас есть объекты, отсортированные от наименьшего расстояния к наибольшему расстоянию?

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

Ответы [ 5 ]

82 голосов
/ 25 октября 2011

Использование Array sort() метод , например

myArray.sort(function(a, b) {
    return a.distance - b.distance;
});
2 голосов
/ 22 февраля 2019

Это то же самое, что и текущий верхний ответ, но в однострочнике ES6:

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

2 голосов
/ 05 февраля 2019

Не впечатляюще отличается от уже полученных ответов, но более обобщенно:

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

sortArrayOfObjects(yourArray, "distance");
0 голосов
/ 21 июня 2019

В моем случае мне нужно отсортировать по строке «имя»

users.sort((a, b) => a.name.localeCompare(b.name));
0 голосов
/ 07 марта 2018

Это сработало для меня

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

ИЛИ используйте Lodash для сортировки массива

files = _.orderBy(files,'LastModified','asc');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...