Arrays Sorteren Met de sort()-Methode
sort()
De sort()-methode herschikt elementen van een array op hun plaats en retourneert de bijgewerkte array. Standaard werkt sorteren goed voor strings, maar kan onverwacht gedrag vertonen bij getallen.
Standaard sorteergedrag
Standaard sorteren verloopt probleemloos voor arrays van strings, maar numerieke arrays kunnen uitdagingen opleveren. Laten we voorbeelden bekijken om dit gedrag te verduidelijken:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
In dit voorbeeld wordt de array met getallen in oplopende volgorde gesorteerd, wat op het eerste gezicht eenvoudig lijkt. Echter, nuances komen naar voren in de volgende illustratie:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
De sort()-methode behandelt elementen standaard als strings, wat tot onverwachte resultaten kan leiden. Zo wordt 19 vóór 2 gesorteerd en 25 vóór 3. De oplossing ligt in het aanpassen van het sorteerproces.
Aangepaste Sorteervolgordes
Om sortering aan specifieke behoeften aan te passen, wordt een callbackfunctie gebruikt. Deze functie, vaak een vergelijkingsfunctie genoemd, bepaalt de sorteervolgorde. Laten we aangepaste sorteringen voor zowel getallen als strings verkennen. Basis syntaxis:
array.sort((a, b) => {
// Callback body
});
awordt beschouwd als het eerste element;bwordt beschouwd als het tweede element.
Getallen Sorteren
In dit geval bepaalt de vergelijkingsfunctie de oplopende en aflopende volgorde op basis van de relatie tussen de elementen a en b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Strings sorteren
De methode localeCompare() vergemakkelijkt alfabetische sortering, met mogelijkheden voor aanpassing voor zowel oplopende als aflopende volgorde.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. Wat is een belangrijk kenmerk van de methode sort()?
2. Hoe behandelt de standaard sorteermethode van de sort()-methode de elementen?
3. Wat zal de uitvoer zijn in het onderstaande voorbeeld?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain why the default sort method treats numbers as strings?
How does the compare function work in the sort method?
Can you show more examples of custom sorting, like sorting objects?
Geweldig!
Completion tarief verbeterd naar 2.27
Arrays Sorteren Met de sort()-Methode
Veeg om het menu te tonen
sort()
De sort()-methode herschikt elementen van een array op hun plaats en retourneert de bijgewerkte array. Standaard werkt sorteren goed voor strings, maar kan onverwacht gedrag vertonen bij getallen.
Standaard sorteergedrag
Standaard sorteren verloopt probleemloos voor arrays van strings, maar numerieke arrays kunnen uitdagingen opleveren. Laten we voorbeelden bekijken om dit gedrag te verduidelijken:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
In dit voorbeeld wordt de array met getallen in oplopende volgorde gesorteerd, wat op het eerste gezicht eenvoudig lijkt. Echter, nuances komen naar voren in de volgende illustratie:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
De sort()-methode behandelt elementen standaard als strings, wat tot onverwachte resultaten kan leiden. Zo wordt 19 vóór 2 gesorteerd en 25 vóór 3. De oplossing ligt in het aanpassen van het sorteerproces.
Aangepaste Sorteervolgordes
Om sortering aan specifieke behoeften aan te passen, wordt een callbackfunctie gebruikt. Deze functie, vaak een vergelijkingsfunctie genoemd, bepaalt de sorteervolgorde. Laten we aangepaste sorteringen voor zowel getallen als strings verkennen. Basis syntaxis:
array.sort((a, b) => {
// Callback body
});
awordt beschouwd als het eerste element;bwordt beschouwd als het tweede element.
Getallen Sorteren
In dit geval bepaalt de vergelijkingsfunctie de oplopende en aflopende volgorde op basis van de relatie tussen de elementen a en b.
1234567const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
Strings sorteren
De methode localeCompare() vergemakkelijkt alfabetische sortering, met mogelijkheden voor aanpassing voor zowel oplopende als aflopende volgorde.
1234567const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
1. Wat is een belangrijk kenmerk van de methode sort()?
2. Hoe behandelt de standaard sorteermethode van de sort()-methode de elementen?
3. Wat zal de uitvoer zijn in het onderstaande voorbeeld?
Bedankt voor je feedback!