Сортировка массивов в 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...}

Ответы

Ответ 1

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

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

Ответ 2

Здесь так же, как текущий топ-ответ, но в однострочнике ES6:

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

Ответ 3

Не сильно отличается от ответов, которые уже даны, но более общим является:

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

sortArrayOfObjects(yourArray, "distance");

Ответ 4

Если значение ключа имеет тип string, вы можете использовать метод localeCompare, например:

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

Ответ 5

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

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

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

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