De sort methode

De methode sort sorteert een array in lexicografische volgorde en retourneert de reeds aangepaste array. Als optionele parameter kan een eigen sorteerfunctie worden opgegeven.

Syntaxis

javascriptarray.sort([functie]);

Voorbeeld

Laten we een array sorteren:

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

Resultaat van de code-uitvoering:

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

Voorbeeld

Laten we een array met getallen sorteren:

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

Resultaat van de code-uitvoering:

javascript[1, 2, 4, 7]

Voorbeeld

Laten we getallen toevoegen aan de array en deze sorteren:

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

Als resultaat van de code-uitvoering zien we dat de getallen niet in oplopende volgorde staan, maar in lexicografische volgorde, d.w.z. getallen worden onderling vergeleken als strings. Hierbij wordt de vergelijking per karakter gemaakt, of de code van het eerste karakter groter is dan die van het aangrenzende karakter, enz. Resultaat:

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

Voorbeeld

Laten we nu de array sorteren met behulp van een functie, waarin we de voorwaarde specificeren - als de eerste parameter groter is dan de tweede, dan wisselen we deze (hiervoor geef je in return een positief getal terug). In het omgekeerde geval is verwisseling niet nodig en specificeren we 0 of een negatief 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 de code-uitvoering:

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

Voorbeeld

Laten we voor het gemak de code inkorten in onze functie uit het vorige voorbeeld:

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

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

console.log(arr);

Resultaat van de code-uitvoering:

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

Voorbeeld

En laten we nu met behulp van een functie de array sorteren in aflopende volgorde:

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

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

console.log(arr);

Resultaat van de code-uitvoering:

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

Voorbeeld

Laten we een array van objecten sorteren op sleutel 'one' in oplopende 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 de code-uitvoering:

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

Voorbeeld

En laten we nu de array van objecten sorteren op 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 de code-uitvoering:

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

Voorbeeld

Laten we controleren of de array is veranderd na toepassing van de methode sort:

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

console.log(arr);

Resultaat van de code-uitvoering:

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

Zie ook

  • de methode filter,
    die het mogelijk maakt array-elementen te filteren