Metodi sort
Metodi sort suorittaa taulukon lajittelun
leksikografisessa järjestyksessä ja palauttaa jo
muutetun taulukon. Valinnaisena parametrina
voidaan antaa oma funktio lajittelua varten.
Syntaksi
taulukko.sort([funktio]);
Esimerkki
Lajitellaan taulukko:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koodin suorituksen tulos:
['a', 'b', 'c', 'd']
Esimerkki
Lajitellaan taulukko numeroilla:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Koodin suorituksen tulos:
[1, 2, 4, 7]
Esimerkki
Lisätään taulukkoon numeroita ja lajitellaan se:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Koodin suorituksen tuloksena näemme, että numerot eivät sijaitse nousevassa järjestyksessä, vaan leksikografisessa järjestyksessä, eli numerot verrataan keskenään merkkijonoina. Tässä vertailu tapahtuu jokaisen merkin perusteella, onko ensimmäisen merkin koodi suurempi kuin naapurimerkin koodi jne. Tulos:
[1, 111, 123, 2, 4, 7]
Esimerkki
Lajitellaan nyt taulukko
funktion avulla, jossa määritämme ehdon -
jos ensimmäinen parametri on suurempi kuin toinen, niin se siirretään
(tätä varten return-lauseessa mikä tahansa positiivinen luku).
Päinvastaisessa tapauksessa siirtoa ei tarvita ja määritämme
0 tai minkä tahansa negatiivisen luvun:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Koodin suorituksen tulos:
[1, 2, 4, 7, 111, 123]
Esimerkki
Lyhennetään mukavuuden vuoksi koodia edellisen esimerkin funktiossamme:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koodin suorituksen tulos:
[1, 2, 4, 7, 111, 123]
Esimerkki
Lajitellaan nyt funktion avulla taulukko laskevaan järjestykseen:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koodin suorituksen tulos:
[123, 111, 7, 4, 2, 1]
Esimerkki
Lajitellaan olioita sisältävä taulukko
avaimen 'one' mukaan nousevaan järjestykseen:
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);
Koodin suorituksen tulos:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Esimerkki
Lajitellaan nyt olioita sisältävä taulukko
avaimen 'two' mukaan:
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);
Koodin suorituksen tulos:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Esimerkki
Tarkistetaan, onko taulukko muuttunut
metodin sort käytön jälkeen:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koodin suorituksen tulos:
['a', 'b', 'c', 'd']
Katso myös
-
metodi
filter,
jolla voi suodattaa taulukon elementtejä