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