#
ToSorted
Метод toSorted() — это современный метод для сортировки массива, введенный в спецификации ECMAScript. В отличие от метода
sort
, он не изменяет исходный массив, а возвращает новый массив с отсортированными элементами. Это делает его полезным для работы с данными, где требуется сохранить неизменным оригинальный массив.
Синтаксис: array.toSorted(compareFunction)
array: Массив, который нужно отсортировать.compareFunction(необязательный): Функция сравнения, определяющая порядок сортировки. Если не указана, элементы сортируются как строки в порядке Unicode.
#
Отличие от sort():
sort()изменяет исходный массив.toSorted()возвращает новый массив, не затрагивая оригинал.
В остальном toSorted() работает аналогично sort().
#
Примеры использования toSorted():
Сортировка чисел:
const numbers = [3, 1, 4, 1, 5, 9];
const sortedNumbers = numbers.toSorted((a, b) => a - b);
console.log(sortedNumbers); // [1, 1, 3, 4, 5, 9]
console.log(numbers); // [3, 1, 4, 1, 5, 9] (исходный массив не изменен)
Сортировка строк:
const fruits = ["date", "pear", "cherry", "apple"];
const sortedFruits = fruits.toSorted();
console.log(sortedFruits); // ['apple', 'cherry', 'date', 'pear']
console.log(fruits); // ['date', 'pear', 'cherry', 'apple'] (исходный массив не изменен)
Сортировка объектов:
const items = [
{ name: "apple", price: 2 },
{ name: "banana", price: 1 },
{ name: "cherry", price: 3 },
];
const sortedItems = items.toSorted((a, b) => a.price - b.price);
console.log(sortedItems);
// [{name: 'banana', price: 1}, {name: 'apple', price: 2}, {name: 'cherry', price: 3}]
console.log(items);
// [{name: 'apple', price: 2}, {name: 'banana', price: 1}, {name: 'cherry', price: 3}]
#
Заключение
Метод toSorted() предоставляет удобный способ сортировки массива без изменения исходного массива. Он особенно полезен в случаях, когда требуется сохранить исходные данные неизменными, например, при работе с состояниями в React или других библиотеках. В большинстве случаев он может заменить sort() там, где важна неизменяемость данных.