Вебсправочник
Справочник JavaScript

Array.toSorted(): сортировка новой копии массива

Метод toSorted возвращает новый отсортированный массив, сохраняя исходный порядок старого. Он полезен, когда интерфейсу нужна сортировка, а исходные данные должны оставаться неизменными.

Назначение

Метод toSorted возвращает новый отсортированный массив, сохраняя исходный порядок старого. Он полезен, когда интерфейсу нужна сортировка, а исходные данные должны оставаться неизменными.

Как это работает

Для чисел передайте функцию сравнения: без неё элементы сравниваются как строки. Отрицательный результат ставит первый аргумент раньше второго, положительный — позже, ноль означает равенство по выбранному критерию.

Пример

const original=[12,3,20];
const ordered=original.toSorted((a,b)=>a-b);
console.assert(ordered.join(",")==="3,12,20");
console.assert(original.join(",")==="12,3,20");
console.assert(ordered!==original);

Что должно получиться

Новая коллекция имеет числовой порядок 3, 12, 20, а исходная остаётся 12, 3, 20. Проверки отдельно подтверждают порядок и разные ссылки на массивы.

Граница применения и частая ошибка

Копия поверхностная: объекты внутри двух массивов остаются общими. Функция сравнения должна давать согласованный результат и не менять данные. Для старого окружения проверьте наличие метода или используйте копирование перед sort.

Самостоятельная проверка

Отсортируйте массив объектов по цене и проверьте, что исходный порядок сохранился. Затем измените поле одного объекта и проследите, почему изменение видно через обе коллекции.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.