Meetod sort
Meetod sort sorteerib massiivi
leksikograafilises järjekorras ja tagastab juba
muudetud massiivi. Valikulise parameetrina
saab määrata oma funktsiooni sortimiseks.
Süntaks
javascriptmassiiv.sort([funktsioon]);
Näide
Sorteerime massiivi:
javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koodi täitmise tulemus:
javascript['a', 'b', 'c', 'd']
Näide
Sorteerime numbritega massiivi:
javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());
Koodi täitmise tulemus:
javascript[1, 2, 4, 7]
Näide
Lisame massiivi numbrid ja sorteerime selle:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Koodi täitmise tulemusena näeme, et numbrid ei paikne kasvavas järjekorras, vaid leksikograafilises järjekorras, st numbreid võrreldakse omavahel nagu stringe. Samal ajal võrreldakse iga märki, kas esimese märgi kood on suurem kui naabermärgi kood jne. Tulemus:
javascript[1, 111, 123, 2, 4, 7]
Näide
Nüüd sorteerime massiivi
funktsiooni abil, kus määrame tingimuse -
kui esimene parameeter on teisest suurem, siis vahetame selle
(selleks tagastame return-iga mis tahes positiivse arvu).
Vastasel juhul pole vahetamist vaja ja me märgime
0 või mis tahes negatiivse arvu:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Koodi täitmise tulemus:
javascript[1, 2, 4, 7, 111, 123]
Näide
Lihtsustame eelmise näite funktsiooni koodi:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koodi täitmise tulemus:
javascript[1, 2, 4, 7, 111, 123]
Näide
Nüüd sorteerime funktsiooni abil massiivi kahanevas järjekorras:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koodi täitmise tulemus:
javascript[123, 111, 7, 4, 2, 1]
Näide
Sorteerime objektide massiivi
võtme 'one' järgi kasvavas järjekorras:
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);
Koodi täitmise tulemus:
javascript[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Näide
Nüüd aga sorteerime objektide massiivi
võtme 'two' järgi:
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);
Koodi täitmise tulemus:
javascript[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Näide
Kontrollime, kas massiiv on muutunud pärast
meetodi sort rakendamist:
javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koodi täitmise tulemus:
javascript['a', 'b', 'c', 'd']
Vaata ka
-
meetod
filter,
mis võimaldab massiivi elemente filtreerida