Метод sort
Методът sort извършва сортиране на масив
в лексикографски ред и връща вече
променения масив. Като незадължителен параметър
може да се посочи собствена функция за сортиране.
Синтаксис
масив.sort([функция]);
Пример
Нека сортираме масив:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Резултат от изпълнението на кода:
['a', 'b', 'c', 'd']
Пример
Нека сортираме масив с числа:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Резултат от изпълнението на кода:
[1, 2, 4, 7]
Пример
Нека добавим числа в масива и го сортираме:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
В резултат на изпълнението на кода виждаме, че числата са разположени не във възходящ ред, а в лексикографски ред, т.е. числата се сравняват помежду си като низове. При това сравнението става по всеки символ, дали кодът на първия символ е по-голям от кода на съседния и т.н. Резултат:
[1, 111, 123, 2, 4, 7]
Пример
Сега нека сортираме масива
с помощта на функция, в която ще зададем условие -
ако първият параметър е по-голям от втория, го разместваме
(за това в return всяко положително число).
В обратния случай разместване не е необходимо и посочваме
0 или всяко отрицателно число:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Резултат от изпълнението на кода:
[1, 2, 4, 7, 111, 123]
Пример
Нека за удобство съкратим кода в нашата функция от предишния пример:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Резултат от изпълнението на кода:
[1, 2, 4, 7, 111, 123]
Пример
А сега с помощта на функция нека сортираме масива в низходящ ред:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Резултат от изпълнението на кода:
[123, 111, 7, 4, 2, 1]
Пример
Нека сортираме масив от обекти
по ключ 'one' във възходящ ред:
let arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.one - b.one;
});
console.log(arr);
Резултат от изпълнението на кода:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Пример
А сега нека сортираме масива от обекти
по ключ 'two':
let arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.two - b.two;
});
console.log(arr);
Резултат от изпълнението на кода:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Пример
Нека проверим дали масивът се е променил след
прилагането на метода sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Резултат от изпълнението на кода:
['a', 'b', 'c', 'd']
Вижте също
-
метод
filter,
който позволява филтриране на елементи от масив