Array.prototype.toSorted()
Базовая версия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2023 года.
Метод toSorted() экземпляров Array является копирующей версией метода sort(). Он возвращает новый массив с элементами, отсортированными по возрастанию.
Синтаксис
toSorted() toSorted(compareFn)
Параметры
-
compareFnНеобязательно - Функция, которая определяет порядок элементов. Если опущена, элементы массива преобразуются в строки, а затем сортируются в соответствии со значением кодовой точки Юникода каждого символа. См.
sort()для получения дополнительной информации.
Возвращаемое значение
Новый массив с элементами, отсортированными по возрастанию.
Описание
См. sort() для получения дополнительной информации о параметре compareFn.
При использовании на разреженных массивах метод toSorted() перебирает пустые слоты так, как если бы они имели значение undefined.
Метод toSorted() является обобщенным. Он ожидает, что значение this будет иметь свойство length и целочисленные свойства-ключи.
Примеры
Сортировка массива
const months = ["Mar", "Jan", "Feb", "Dec"]; const sortedMonths = months.toSorted(); console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar'] console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec'] const values = [1, 10, 21, 2]; const sortedValues = values.toSorted((a, b) => a - b); console.log(sortedValues); // [1, 2, 10, 21] console.log(values); // [1, 10, 21, 2]
Дополнительные примеры использования см. в sort().
Использование toSorted() на разреженных массивах
Пустые слоты сортируются так, как если бы они имели значение undefined. Они всегда сортируются в конец массива, и compareFn для них не вызывается.
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined] console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]
Вызов toSorted() на объектах, не являющихся массивами
Метод toSorted() считывает свойство length объекта this. Затем он собирает все существующие целочисленные свойства-ключи в диапазоне от 0 до length - 1, сортирует их и записывает в новый массив.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // ignored by toSorted() since length is 3
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
toSorted |
110 |
110 |
115 |
96 |
16 |
110 |
115 |
74 |
16 |
21.0 |
110 |
16 |
1.0.0 |
1.31 |
20.0.0 |
См. также
- Полифил
Array.prototype.toSortedвcore-js - Полифил es-shims
Array.prototype.toSorted - Руководство по индексированным коллекциям
Array.prototype.sort()Array.prototype.toReversed()Array.prototype.toSpliced()Array.prototype.with()TypedArray.prototype.toSorted()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted