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