Metoda sort
Metoda sort razvrsti tabelo
v leksikografskem vrstnem redu in vrne že
spremenjeno tabelo. Kot neobvezen parameter
lahko podamo lastno funkcijo za razvrščanje.
Sintaksa
tabela.sort([funkcija]);
Primer
Razvrstimo tabelo:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Rezultat izvajanja kode:
['a', 'b', 'c', 'd']
Primer
Razvrstimo tabelo s števili:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Rezultat izvajanja kode:
[1, 2, 4, 7]
Primer
Dodajmo v tabelo števila in jih razvrstimo:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Kot rezultat izvajanja kode vidimo, da števila niso razporejena v naraščajočem vrstnem redu, temveč v leksikografskem vrstnem redu, kar pomeni, da se števila med seboj primerjajo kot nizi. Pri tem se primerja vsak znak, ali je koda prvega znaka večja od kode sosednjega itd. Rezultat:
[1, 111, 123, 2, 4, 7]
Primer
Zdaj razvrstimo tabelo
z uporabo funkcije, v kateri določimo pogoj -
če je prvi parameter večji od drugega, ga zamenjamo
(za to v return podamo poljubno pozitivno število).
V nasprotnem primeru zamenjava ni potrebna in podamo
0 ali poljubno negativno število:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Rezultat izvajanja kode:
[1, 2, 4, 7, 111, 123]
Primer
Za udobje skrajšajmo kodo v naši funkciji iz prejšnjega primera:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Rezultat izvajanja kode:
[1, 2, 4, 7, 111, 123]
Primer
Zdaj pa z uporabo funkcije razvrstimo tabelo v padajočem vrstnem redu:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Rezultat izvajanja kode:
[123, 111, 7, 4, 2, 1]
Primer
Razvrstimo tabelo objektov
po ključu 'one' v naraščajočem vrstnem redu:
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);
Rezultat izvajanja kode:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Primer
Zdaj pa razvrstimo tabelo objektov
po ključu '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);
Rezultat izvajanja kode:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Primer
Preverimo, ali se je tabela spremenila po
uporabi metode sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Rezultat izvajanja kode:
['a', 'b', 'c', 'd']
Glejte tudi
-
metoda
filter,
ki omogoča filtriranje elementov tabele