сортировать():
Метод sort() сортирует элементы массива и возвращает отсортированный массив. Порядок сортировки по умолчанию — восходящий, основанный на объединении элементов в строки, а затем сравнении их последовательности значений кодовых единиц UTF-16. Порядок sort() может быть либо буквенным, либо числовым, либо по возрастанию, либо по убыванию. По умолчанию метод sort() сортирует значения в виде строк в алфавитном порядке и в порядке возрастания. Это хорошо работает для строковых массивов, но с числами учитывается только первое число.
Синтаксис:array.sort(compareFunction);
Метод sort() имеет функцию сравнения, которая является необязательной.
compareFunction:эта функция определяет альтернативный порядок сортировки. Эта функция должна возвращать отрицательное/нулевое/положительное значение в зависимости от аргументов.
Примеры:
// Sorting Arrays // Strings const owners = ['Thilip', 'Daniel', 'Udhaya', 'Sai', 'Sheik']; owners.sort(); console.log(owners);
В приведенном выше примере массив owners отсортирован в алфавитном порядке.
const arr = [100, 499, 90, 56]; arr.sort(); console.log(arr);
В приведенном выше примере 100 меньше 499, 499 меньше 56, 56 меньше 90.т. е. 90 — это наибольшее число всех остальных чисел в заданных элементах массива. Это связано с тем, что учитывается только первое число, то есть100 меньше, потому что первое число равно 1, что меньше 4, 499 меньше, потому что первое число равно 4, что меньше 5, и так далее.
// Numbers const arr = [200, 450, -400, 3000, -650, -130, 70, 1300]; arr.sort((a, b) => a - b); console.log(arr); // Descending arr.sort((a, b) => b - a); console.log(arr);
В приведенном выше примере, когда методы sort() вызывают функцию, мы сравниваем каждый массив элементов. Здесь функция сравнивает значения в массиве, значения 200 и 450, функция вычисляет их (a-b) т.е. (200–450) в порядке возрастания, что возвращает отрицательное значение (-250). Когда функция возвращает отрицательное значение, метод sort() будет считать, что 250 меньше 400. Точно так же функция сравнивает значения в массиве, значения равны 200 и 450, функция вычисляет их. (b-a) т.е.(450–200) для убывающего порядка, который возвращает положительное значение (250). Когда функция возвращает положительное значение, метод sort() будет считать, что 400 больше, чем 250.
Спасибо!!!
Хорошего дня!!!