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
array.sort([functie]);
Voorbeeld
Laten we een array sorteren:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Resultaat van de code-uitvoering:
['a', 'b', 'c', 'd']
Voorbeeld
Laten we een array met getallen sorteren:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Resultaat van de code-uitvoering:
[1, 2, 4, 7]
Voorbeeld
Laten we getallen toevoegen aan de array en deze sorteren:
let 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:
[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:
let 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:
[1, 2, 4, 7, 111, 123]
Voorbeeld
Laten we voor het gemak de code inkorten in onze functie uit het vorige voorbeeld:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Resultaat van de code-uitvoering:
[1, 2, 4, 7, 111, 123]
Voorbeeld
En laten we nu met behulp van een functie de array sorteren in aflopende volgorde:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Resultaat van de code-uitvoering:
[123, 111, 7, 4, 2, 1]
Voorbeeld
Laten we een array van objecten sorteren
op sleutel 'one' in oplopende volgorde:
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);
Resultaat van de code-uitvoering:
[
{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':
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);
Resultaat van de code-uitvoering:
[
{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:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Resultaat van de code-uitvoering:
['a', 'b', 'c', 'd']
Zie ook
-
de methode
filter,
die het mogelijk maakt array-elementen te filteren