Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що робить toSorted()?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`toSorted()`** - це новий, немутуючий аналог методу `sort()` у JavaScript, доданий у стандарт ECMAScript 2023 (ES14). **Ключове:** він дозволяє відсортувати масив, не змінюючи вихідний масив, і повертає нову відсортовану копію.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення`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()`, > яка повертає **новий відсортований масив**, > зберігаючи оригінал без змін.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.