Metodi sort
Metodi sort suorittaa taulukon lajittelun
leksikografisessa järjestyksessä ja palauttaa jo
muutetun taulukon. Valinnaisena parametrina
voidaan antaa oma funktio lajittelua varten.
Syntaksi
javascripttaulukko.sort([funktio]);
Esimerkki
Lajitellaan taulukko:
javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koodin suorituksen tulos:
javascript['a', 'b', 'c', 'd']
Esimerkki
Lajitellaan taulukko numeroilla:
javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());
Koodin suorituksen tulos:
javascript[1, 2, 4, 7]
Esimerkki
Lisätään taulukkoon numeroita ja lajitellaan se:
javascriptlet 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:
javascript[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:
javascriptlet 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:
javascript[1, 2, 4, 7, 111, 123]
Esimerkki
Lyhennetään mukavuuden vuoksi koodia edellisen esimerkin funktiossamme:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koodin suorituksen tulos:
javascript[1, 2, 4, 7, 111, 123]
Esimerkki
Lajitellaan nyt funktion avulla taulukko laskevaan järjestykseen:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koodin suorituksen tulos:
javascript[123, 111, 7, 4, 2, 1]
Esimerkki
Lajitellaan olioita sisältävä taulukko
avaimen 'one' mukaan nousevaan järjestykseen:
javascriptlet 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:
javascript[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Esimerkki
Lajitellaan nyt olioita sisältävä taulukko
avaimen 'two' mukaan:
javascriptlet 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:
javascript[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Esimerkki
Tarkistetaan, onko taulukko muuttunut
metodin sort käytön jälkeen:
javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koodin suorituksen tulos:
javascript['a', 'b', 'c', 'd']
Katso myös
-
metodi
filter,
jolla voi suodattaa taulukon elementtejä