Metode sort

Die metode sort sorteer 'n skikking in leksikografiese volgorde en gee die reeds veranderde skikking terug. 'n Opsionele parameter is 'n eie funksie vir sortering.

Sintaksis

javascriptskikking.sort([funksie]);

Voorbeeld

Kom ons sorteer 'n skikking:

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Resultaat van die kode:

javascript['a', 'b', 'c', 'd']

Voorbeeld

Kom ons sorteer 'n skikking met getalle:

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Resultaat van die kode:

javascript[1, 2, 4, 7]

Voorbeeld

Kom ons voeg getalle by in die skikking en sorteer dit:

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

As resultaat van die kode sien ons dat die getalle nie in toenemende volgorde is nie, maar in leksikografiese volgorde, m.a.w. getalle word met mekaar vergelyk soos stringe. Die vergelyking gaan per karakter, of die kode van die eerste karakter groter is as die kode van die naburige karakter, ens. Resultaat:

javascript[1, 111, 123, 2, 4, 7]

Voorbeeld

Kom ons sorteer nou die skikking met 'n funksie, waarin ons die voorwaarde skryf - as die eerste parameter groter as die tweede is, moet ons dit omruil (hiervoor, in return, enige positiewe getal). In die teenoorgestelde geval is omruiling nie nodig nie en ons spesifiseer 0 of enige negatiewe getal:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Resultaat van die kode:

javascript[1, 2, 4, 7, 111, 123]

Voorbeeld

Kom ons verkort die kode in ons funksie uit die vorige voorbeeld vir gemak:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Resultaat van die kode:

javascript[1, 2, 4, 7, 111, 123]

Voorbeeld

En nou sorteer ons die skikking in afnemende volgorde met 'n funksie:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Resultaat van die kode:

javascript[123, 111, 7, 4, 2, 1]

Voorbeeld

Kom ons sorteer 'n skikking van voorwerpe volgens die sleutel 'one' in toenemende volgorde:

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);

Resultaat van die kode:

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Voorbeeld

En nou sorteer ons die skikking van voorwerpe volgens die sleutel 'two':

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);

Resultaat van die kode:

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Voorbeeld

Kom ons kyk of die skikking verander het na die toepassing van die metode sort:

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Resultaat van die kode:

javascript['a', 'b', 'c', 'd']

Sien ook

  • metode filter,
    wat toelaat om elemente van 'n skikking te filter