Javascript имеет встроенный метод sort(), который помогает нам легко сортировать массив, например:
const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); // expected output: Array ["Dec", "Feb", "Jan", "March"] const array1 = [1, 30, 4, 21, 100000]; array1.sort(); // expected output: Array [1, 100000, 21, 30, 4]
Но что произойдет, если у нас есть массив объектов, и мы хотим упорядочить их по ключу? Что ж, метод sort также получает callback-функцию, принимает ее в качестве аргумента и возвращает отсортированный массив, например:
const items = [ { name: 'Edward', value: 21 }, { name: 'Sharpe', value: 37 }, { name: 'And', value: 45 }, { name: 'The', value: -12 }, { name: 'Magnetic', value: 13 }, { name: 'Zeros', value: 37 } ]; // sort by value items.sort((a, b) => a.value - b.value);
Если нашим условием возврата является a — b, то ir сортирует массив в порядке возрастания.
Если наше условие возврата b — a, то ir сортирует массив в порядке убывания.