🧱 Суть
Array.prototype.toSorted() – это современный метод JavaScript для сортировки массива.
В отличие от sort(), он не изменяет исходный массив, а возвращает новый отсортированный.
📦 Проблема
1. sort() мутирует массив
Например:
const numbers = [3, 1, 2];
numbers.sort();
console.log(numbers);
// [1, 2, 3]Исходный массив изменился.
2. Это может привести к побочным эффектам
Если массив используется в нескольких местах программы, его изменение может вызвать неожиданные ошибки.
✅ Решение
Использовать:
array.toSorted()Он создаёт новый отсортированный массив, не изменяя исходный.
💻 Код
Сортировка чисел:
const numbers = [3, 1, 2];
const sorted = numbers.toSorted((a, b) => a - b);
console.log(sorted);
// [1, 2, 3]
console.log(numbers);
// [3, 1, 2]Сортировка строк:
const fruits = ['banana', 'apple', 'orange'];
const sorted = fruits.toSorted();
console.log(sorted);
// ['apple', 'banana', 'orange']Сравнение
sort():
const sorted = array.sort();- изменяет исходный массив
- возвращает ссылку на него
toSorted():
const sorted = array.toSorted();- создаёт новый массив
- исходный массив остаётся без изменений
🎯 Вывод
toSorted()– современная альтернативаsort()- не мутирует исходный массив
- делает код безопаснее и предсказуемее
- особенно полезен при работе с неизменяемыми данными (например, в React)