JavaScript · справочник
Метод Array.sort()
sort() меняет порядок элементов исходного массива. Без функции сравнения значения превращаются в строки, поэтому числа могут расположиться неожиданно.
Сортировка чисел
Разность a - b даёт порядок по возрастанию, b - a — по убыванию.
const numbers = [2, 11, 3];
numbers.sort((a, b) => a - b); // [2, 3, 11]
Объекты и копия
Для объектов сравнивают нужное поле. Если исходный массив должен сохраниться, сначала сделай копию или используй toSorted в современных средах.
const sorted = [...products].sort((a, b) => a.price - b.price);
const byName = products.toSorted((a, b) => a.name.localeCompare(b.name, 'ru'));
Частые ошибки
- Числа сортируются без callback.
- Неожиданно изменён исходный массив.
- Callback возвращает boolean.
- Строки сравниваются без localeCompare.
Практика
Отсортируй товары по цене, не меняя исходный массив. Затем создай русскую сортировку по названию.
Связанные темы
Практикум по теме
- Сортировка уже показанного списка — Список задач или карточек можно упорядочить по имени, не запрашивая его заново.