Meetod sort
Meetod sort sorteerib massiivi
leksikograafilises järjekorras ja tagastab juba
muudetud massiivi. Valikulise parameetrina
saab määrata oma funktsiooni sortimiseks.
Süntaks
massiiv.sort([funktsioon]);
Näide
Sorteerime massiivi:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koodi täitmise tulemus:
['a', 'b', 'c', 'd']
Näide
Sorteerime numbritega massiivi:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Koodi täitmise tulemus:
[1, 2, 4, 7]
Näide
Lisame massiivi numbrid ja sorteerime selle:
let 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:
[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:
let 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:
[1, 2, 4, 7, 111, 123]
Näide
Lihtsustame eelmise näite funktsiooni koodi:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koodi täitmise tulemus:
[1, 2, 4, 7, 111, 123]
Näide
Nüüd sorteerime funktsiooni abil massiivi kahanevas järjekorras:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koodi täitmise tulemus:
[123, 111, 7, 4, 2, 1]
Näide
Sorteerime objektide massiivi
võtme 'one' järgi kasvavas järjekorras:
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);
Koodi täitmise tulemus:
[
{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:
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);
Koodi täitmise tulemus:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Näide
Kontrollime, kas massiiv on muutunud pärast
meetodi sort rakendamist:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koodi täitmise tulemus:
['a', 'b', 'c', 'd']
Vaata ka
-
meetod
filter,
mis võimaldab massiivi elemente filtreerida