Array.prototype.toSorted
Возвращает отсортированную копию массива, не меняя исходный.
Доступно с: ES2023
Синтаксис
array.toSorted(compareFn)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| compareFn | Function | Необязательный. Функция сравнения двух элементов: возвращает отрицательное число, ноль или положительное. |
Возвращаемое значение
ArrayНовый отсортированный массив.
Примеры
Исходный массив остаётся прежним:
const prices = [30, 5, 120];
const sorted = prices.toSorted((a, b) => a - b);
console.log(sorted.join(', '));
console.log(prices.join(', '));Результат:
5, 30, 120
30, 5, 120Сортировка объектов по имени:
const users = [{ name: 'Oleg' }, { name: 'Anna' }];
console.log(users.toSorted((a, b) => a.name.localeCompare(b.name)).map((u) => u.name).join(', '));Результат:
Anna, OlegПримечания
Без функции сравнения элементы сравниваются как строки, поэтому [10, 9].toSorted() даст [10, 9]. Для чисел всегда передавайте (a, b) => a - b.
См. также
- Array.prototype.sort — Сортирует элементы массива.
- Array.prototype.toReversed — Возвращает перевёрнутую копию массива.
- String.prototype.localeCompare — Сравнивает строки по правилам языка — для сортировки по алфавиту.
Вопросы и ответы по теме
В учебнике
- Сортировка массивов — Как отсортировать массив в JavaScript: sort, функция сравнения, сортировка чисел, строк и объектов, reverse и toSorted.