Метад 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]
Прыклад
Цяпер давайце адсартуем масіў
з дапамогай функцыі, у якой пропiшем умову -
калі першы параметр большы за другі, то яго перастаўляем
(для гэтага ў 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,
які дазваляе фільтраваць элементы масіва