Skip to main content

Що робить toSorted()?

toSorted() - це новий, немутуючий аналог методу sort() у JavaScript, доданий у стандарт ECMAScript 2023 (ES14).

Він дозволяє відсортувати масив, але при цьому не змінює вихідний масив - повертає нову відсортовану копію.

Синтаксис:

javascript
const newArray = array.toSorted(compareFn);
ПараметрОпис
compareFn(необов'язковий) функція порівняння, як у sort() - (a, b) => a - b

Приклад:

javascript
const numbers = [3, 1, 4, 2]; const sorted = numbers.toSorted((a, b) => a - b); console.log(sorted); // [1, 2, 3, 4] console.log(numbers); // [3, 1, 4, 2] - вихідний масив не змінився

На відміну від sort(), який змінює оригінал, toSorted() повертає новий масив з відсортованими елементами.

Порівняння з sort()

МетодЗмінює вихідний масивПовертаєБезпечний
sort()ТакТой самий масивНі
toSorted()НіНовий масивТак

Приклад порівняння:

javascript
const arr = [5, 2, 9]; const sorted1 = arr.sort(); // мутує const sorted2 = arr.toSorted(); // не мутує console.log(arr); // [2, 5, 9] - мутований! console.log(sorted1); // [2, 5, 9] console.log(sorted2); // [2, 5, 9] - новий незалежний масив

З сортуванням за числами:

javascript
const nums = [10, 2, 5, 1]; const asc = nums.toSorted((a, b) => a - b); const desc = nums.toSorted((a, b) => b - a); console.log(asc); // [1, 2, 5, 10] console.log(desc); // [10, 5, 2, 1] console.log(nums); // [10, 2, 5, 1] - не змінився

Коли використовувати

  • Коли важливо зберегти вихідні дані (наприклад, у React, Redux, функціональному коді).
  • Коли потрібно безпечно відсортувати дані без побічних ефектів.

Пов'язані немутуючі методи (ES2023+)

Новий методСтарий аналогЩо робитьМутує?
toReversed()reverse()Перевертає порядокНі
toSorted()sort()СортуєНі
toSpliced()splice()Видаляє / вставляє елементиНі
with()arr[index] = valueЗамінює елемент за індексомНі

Коротко:

Що робитьСтворює відсортовану копію масиву
Змінює вихідний масивНі
ПовертаєНовий масив
Підтримує функцію порівнянняТак
Приклад[3,1,2].toSorted((a,b)=>a-b) -> [1,2,3]

Підсумок: toSorted() - це безпечна, немутуюча альтернатива sort(), яка повертає новий відсортований масив, зберігаючи оригінал без змін.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.