Фундаментальное отличие между sort() и toSorted() заключается в том, как они работают с исходным массивом:
sort() изменяет исходный массив на месте и возвращает ссылку на негоtoSorted() возвращает новый отсортированный массив, оставляя исходный полностью неизменнымconst nums = [3, 1, 2];
// Традиционный sort — изменяет исходный массив
const sorted = nums.sort();
console.log(nums); // [1, 2, 3] — исходный массив изменился!
// ES2023 toSorted — без мутации
const nums2 = [3, 1, 2];
const sorted2 = nums2.toSorted();
console.log(nums2); // [3, 1, 2] — исходный массив сохранён
Случайная мутация массивов — это частый источник багов, особенно когда один массив используется в разных частях приложения. toSorted() способствует паттернам иммутабельных данных, делая код более предсказуемым и простым в отладке.
toSorted() — это часть более широкого набора иммутабельных методов массива, появившихся в ES2023:
toSorted() — иммутабельная версия sort()toReversed() — иммутабельная версия reverse()toSpliced() — иммутабельная версия splice()with() — иммутабельный способ заменить один элемент по индексуПредпочитай toSorted() вместо sort(), когда нужно сохранить исходный массив — особенно при работе с функциональным программированием или фреймворками вроде React, где важно избегать прямых мутаций.
Метод toSorted() возвращает новый отсортированный массив, оставляя исходный массив без изменений, тогда как sort() изменяет исходный массив на месте и возвращает ссылку на него.
Новый — ещё не проверен сообществом
Вы