Що робить 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.