🧱 Суть

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)

🔗 Связано