JavaScript | Как сортировать массив из объектов?

Есть массив с объектами:

var massiv = [
   {a: "a", aa: "2", fd: 88},
   {a: "c", aa: "10", fd: 18},
   {a: "b", aa: "7", fd: 54},
   {a: "d", aa: "1", fd: 5}
]

Мы видим, что значения у свойств объектов не отсортированы. Как сортировать такой массив?

Решение

Сперва нужно определиться, значения какого свойства мы будем сортировать. Вы должны понимать, что сортировка объектов скорее всего будет возможна только по какому-то одному свойству т. к. последовательности других свойств будут перемешаны.

Для начала проведём сортировку по свойству fd:

massiv.sort((a,b)=>(a.fd - b.fd))

В результате получим сортированный массив объектов по ключу fd

Отсортировали массив из объектов - JavaScript
Отсортировали массив из объектов — JavaScript

Массив отсортирован по возрастанию значения по ключу fd

Чтобы отсортировать по убыванию, нужно просто поменять местами переменные в функции обратного вызова.

massiv.sort((a,b)=>(b.fd - a.fd))

В этом случае массив будет сортирован по убыванию значения по ключу fd

Отсортировали массив из объектов по убыванию - JavaScript
Отсортировали массив из объектов по убыванию — JavaScript

 

Информационные ссылки

JavaScript | Массивы (Array)

Array.prototype.sort ( comparefn )

Стандарт ECMAScript — Раздел «23.1.3.27 Array.prototype.sort ( comparefn )» — https://tc39.es/ecma262/#sec-array.prototype.sort

Поделись записью