Metoda sort
Metoda sort provádí řazení pole
v lexikografickém pořadí a vrací již
změněné pole. Jako volitelný parametr
lze zadat vlastní funkci pro řazení.
Syntaxe
pole.sort([funkce]);
Příklad
Seřaďme pole:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Výsledek provedení kódu:
['a', 'b', 'c', 'd']
Příklad
Seřaďme pole s čísly:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Výsledek provedení kódu:
[1, 2, 4, 7]
Příklad
Přidejme do pole čísla a seřaďme jej:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Výsledkem provedení kódu uvidíme, že čísla nejsou uspořádána vzestupně, ale v lexikografickém pořadí, tj. čísla jsou mezi sebou porovnávána jako řetězce. Při tom se porovnává každý znak, zda je kód prvního znaku větší než kód sousedního atd. Výsledek:
[1, 111, 123, 2, 4, 7]
Příklad
Nyní seřaďme pole
pomocí funkce, ve které nastavíme podmínku -
pokud je první parametr větší než druhý, pak jej prohodíme
(k tomu v return libovolné kladné číslo).
V opačném případě prohození není nutné a uvedeme
0 nebo libovolné záporné číslo:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Výsledek provedení kódu:
[1, 2, 4, 7, 111, 123]
Příklad
Pro usnadnění zkraťme kód v naší funkci z předchozího příkladu:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Výsledek provedení kódu:
[1, 2, 4, 7, 111, 123]
Příklad
A nyní pomocí funkce seřaďme pole v sestupném pořadí:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Výsledek provedení kódu:
[123, 111, 7, 4, 2, 1]
Příklad
Seřaďme pole objektů
podle klíče 'one' ve vzestupném pořadí:
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);
Výsledek provedení kódu:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Příklad
A nyní seřaďme pole objektů
podle klíče '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);
Výsledek provedení kódu:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Příklad
Zkontrolujme, zda se pole změnilo po
použití metody sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Výsledek provedení kódu:
['a', 'b', 'c', 'd']
Viz také
-
metoda
filter,
která umožňuje filtrovat prvky pole