Metóda sort
Metóda sort zotriedi pole
v lexikografickom poradí a vráti už
zmenené pole. Voliteľným parametrom
je možné zadať vlastnú funkciu pre triedenie.
Syntax
pole.sort([funkcia]);
Príklad
Poďme zotriediť pole:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Výsledok vykonania kódu:
['a', 'b', 'c', 'd']
Príklad
Poďme zotriediť pole s číslami:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Výsledok vykonania kódu:
[1, 2, 4, 7]
Príklad
Poďme pridať do poľa čísla a zotriediť ho:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Výsledkom vykonania kódu je, že čísla sú usporiadané nie v číselnom poradí, ale v lexikografickom poradí, t.j. čísla sa medzi sebou porovnávajú ako reťazce. Pri tom sa porovnáva každý znak, či je kód prvého znaku väčší ako kód susedného atď. Výsledok:
[1, 111, 123, 2, 4, 7]
Príklad
Teraz poďme zotriediť pole
pomocou funkcie, v ktorej zadáme podmienku -
ak je prvý parameter väčší ako druhý, tak ho prehodíme
(preto v return uvedieme akékoľvek kladné číslo).
V opačnom prípade prehodenie nie je potrebné a uvedieme
0 alebo akékoľvek 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ýsledok vykonania kódu:
[1, 2, 4, 7, 111, 123]
Príklad
Poďme pre pohodlie skrátiť kód v našej funkcii z predchádzajúceho príkladu:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Výsledok vykonania kódu:
[1, 2, 4, 7, 111, 123]
Príklad
A teraz pomocou funkcie zotrieďme pole v zostupnom poradí:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Výsledok vykonania kódu:
[123, 111, 7, 4, 2, 1]
Príklad
Poďme zotriediť pole objektov
podľa kľúča 'one' vo vzostupnom poradí:
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ýsledok vykonania kódu:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Príklad
A teraz poďme zotriediť pole objektov
podľa kľúča '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ýsledok vykonania kódu:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Príklad
Poďme skontrolovať, či sa pole zmenilo po
použití metódy sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Výsledok vykonania kódu:
['a', 'b', 'c', 'd']
Pozri tiež
-
metóda
filter,
ktorá umožňuje filtrovať prvky poľa