JS Sort: Как упорядочить данные в JavaScript
JavaScript sort - это метод, который позволяет отсортировать элементы в массиве в соответствии с указанным порядком сортировки. В отличие от метода reverse(), который меняет порядок элементов в массиве на противоположный, метод sort() сортирует элементы в массиве, переопределяя их порядок. Он используется для сортировки чисел, строк и объектов.
Синтаксис:
array.sort([compareFunction])
параметр compareFunction – необязательный. Функция сравнения, которая определяет порядок сортировки элементов массива.
Пример:
const arr = [3, 5, 1, 9, 4, 7];
arr.sort();
console.log(arr); // [1, 3, 4, 5, 7, 9]
В этом примере метод sort() используется для сортировки числового массива по возрастанию. По умолчанию метод sort() сортирует элементы от меньшего к большему, используя строковое сравнение.
Для сортировки в обратном порядке можно использовать метод reverse(), например:
const arr = [3, 5, 1, 9, 4, 7];
arr.sort().reverse();
console.log(arr); // [9, 7, 5, 4, 3, 1]
Можно также передать функцию сравнения в метод sort(), чтобы определить порядок сортировки самостоятельно.
Пример:
const arr = ["Firefox", "Chrome", "Safari", "Edge", "Opera"];
arr.sort(function(str1, str2) {
if (str1 < str2) {
return -1;
} else if (str1 > str2) {
return 1;
} else {
return 0;
}
});
console.log(arr); // ["Chrome", "Edge", "Firefox", "Opera", "Safari"]
здесь используется функция, которая сравнивает две строки и возвращает:
-1, если первая строка меньше второй,
1, если первая строка больше второй,
0, если строки равны.
Например, для сортировки объектов можно передать функцию сравнения, которая сортирует объекты по определенному свойству:
const players = [
{name: 'John', score: 10},
{name: 'Jane', score: 15},
{name: 'Bob', score: 8},
{name: 'Mike', score: 12},
];
players.sort(function(player1, player2) {
return player1.score - player2.score;
});
console.log(players);
В этом примере метод sort() сортирует массив объектов по свойству score в порядке возрастания.
Кроме того, метод sort() может быть использован для сортировки строк в порядке убывания, пример:
const arr = ["Firefox", "Chrome", "Safari", "Edge", "Opera"];
arr.sort(function(str1, str2) {
if (str1 > str2) {
return -1;
} else if (str1 < str2) {
return 1;
} else {
return 0;
}
});
console.log(arr); // ["Safari", "Opera", "Firefox", "Edge", "Chrome"]
В этом примере функция сравнения сортирует строки по убыванию.
В целом, метод sort() позволяет эффективно сортировать элементы массива в порядке, который вы задаете. Для этого можно использовать функцию сравнения сортировки, чтобы определить порядок сортировки на основе свойств объекта или другой тип данных.