JavaScript Array toSorted()

Определение и использование

toSorted() Метод сортирует элементы массива по алфавиту.

toSorted() Метод возвращает новый массив.

toSorted() Метод не изменяет исходный массив.

toSorted() Метод: sort() Копия метода.

См. также:

Метод sort() массива

Метод reverse() массива

Функция сравнения сортировки

Сортировка по алфавиту работает хорошо для строк ("Apple"排在 "Banana"之前).

Но сортировка чисел может привести к неправильным результатам.

"25" больше "100", потому что "2" больше "1".

Эта проблема может быть решена, предоставив "функцию сравнения" (см. примеры ниже).

Пример

Пример 1

// создание массива
const fruits = ["Banana", "Orange", "Apple", "Mango"];
сортировка чисел по убыванию:
const fruits2 = fruits.toSorted();

попробуйте сами

Пример 2

Порядок после сортировки и обратного преобразования:

// создание массива
const fruits = ["Banana", "Orange", "Apple", "Mango"];
сортировка чисел по убыванию:
const fruits2 = fruits.toSorted();
// Обратное преобразование массива
fruits2.reverse();

попробуйте сами

例子 3

пример 3

// создание массива
const points = [40, 100, 1, 5, 25, 10];
сортировка чисел по убыванию:
let points2 = points.toSorted(function(a, b){return a - b});

попробуйте сами

сортировка чисел по возрастанию с использованием функции сортировки:

пример 4

// создание массива
const points = [40, 100, 1, 5, 25, 10];
сортировка чисел по убыванию:
let points2 = points.toSorted(function(a, b){return b - a});

попробуйте сами

// сортировка массива

пример 5

// создание массива
const points = [40, 100, 1, 5, 25, 10];
// сортировка чисел по возрастанию
let points2 = points.toSorted(function(a, b){return a - b});
найти минимальное значение:

попробуйте сами

пример 6

найти максимальное значение:

// создание массива
const points = [40, 100, 1, 5, 25, 10];
// сортировка чисел по убыванию
let points2 = points.toSorted(function(a, b){return b - a});
let highest = points2[0];

попробуйте сами

пример 7

найти максимальное значение:

// создание массива
const points = [40, 100, 1, 5, 25, 10];
// сортировка чисел по возрастанию
let points2 = points.toSorted(function(a, b){return a - b});
let highest = points2[points.length - 1];

попробуйте сами

синтаксис

array.sort(compareFunction)

параметры

параметры описание
compareFunction

опционально. Функция, определяющая порядок сортировки. Эта функция должна возвращать отрицательное, ноль или положительное значение в зависимости от параметров:

function(a, b){return a-b}

при сравнении двух значений sort() отправляет эти значения в сравнительную функцию и сортирует значения в зависимости от возвращенного значения (отрицательного, нуля, положительного).

пример:

функция сортировки считает 40 меньшим значением, чем 100.

при сравнении 40 и 100, вызывается функция function(40, 100).

функция вычисляет 40 - 100 и возвращает -60 (отрицательное значение).

возвратное значение

тип описание
Array новый массив, отсортированный по порядку.

поддержка браузерами

toSorted() это функция ES2023.

С июля 2023 года все современные браузеры поддерживают этот метод:

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
февраль 2023 года февраль 2023 года июль 2023 года март 2023 года май 2023 года