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 сортирует массив в порядке убывания.