De sort()> methode in JavaScript worden de elementen van een array op hun plaats gerangschikt en wordt de gesorteerde array geretourneerd. Standaard worden de elementen alfabetisch gesorteerd en behandeld als tekenreeksen.
Voor numerieke sortering kunt u echter een aangepaste vergelijkingsfunctie bieden. Deze functie dicteert de sorteercriteria, waardoor nauwkeurige controle over het sorteerproces mogelijk is. `sort()` verbetert de efficiëntie en functionaliteit van JavaScript-applicaties door u in staat te stellen array-elementen op een professionele en formele manier te organiseren volgens specifieke vereisten.
Syntaxis
arr.sort(compareFunction);>
Parameters
array>: De array die moet worden gesorteerd.compareFunction>(Optioneel): Een functie die de sorteervolgorde definieert. Als u dit weglaat, worden de array-elementen gesorteerd op basis van hun Unicode-codepunten in de tekenreeks.
Winstwaarde
Deze methode retourneert de referentie van de gesorteerde originele array.
tijger leeuw verschil
Voorbeelden:
Voorbeeld 1: Een array van tekenreeksen sorteren
Dit voorbeeld toont het gebruik van de functie sort().
mergesort-algoritmeJavaScript
// JavaScript to illustrate sort() function function func() { // Original string let arr = ['Geeks', 'for', 'Geeks'] console.log(arr); // Sorting the array console.log(arr.sort()); } func();> Uitvoer
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ]>
Uitleg:
Desort()>methode herschikt de elementen van dearr>alfabetisch gerangschikt, waarbij de uitvoer wordt geproduceerd['Geeks', 'Geeks', 'for']>.
Voorbeeld 2: Een reeks getallen sorteren zonder vergelijkingsfunctie
Hier de soort() methode rangschikt de elementen van de array in oplopende volgorde.
JavaScript // JavaScript to illustrate sort() function function func() { //Original string let arr = [2, 5, 8, 1, 4] //Sorting the array console.log(arr.sort()); } func();> Uitvoer
[ 1, 2, 4, 5, 8 ]>
Uitleg:
Desort()>methode wordt aangeroepen op een array van getallen[2, 5, 8, 1, 4]>. Desort()>methode sorteert de elementen alfabetisch omdat er geen vergelijkingsfunctie beschikbaar is. Daarom zal de uitvoer zijn[1, 2, 4, 5, 8]>, die alfabetisch is gesorteerd op basis van de tekenreeksrepresentaties van de getallen.
binaire boomtypen
Voorbeeld 3: Numerieke waarde sorteren zonder vergelijkingsfunctie
Hier sorteren we numerieke waarden zonder de vergelijkingsfunctie
Javascript let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort())>
Uitvoer
[ -120, 0, 100, 20, 30, 5.2 ]>
Uitleg:
Wanneer u gebruik maakt van desort()>methode zonder een vergelijkingsfunctie sorteert JavaScript array-elementen standaard als tekenreeksen, wat mogelijk niet altijd de verwachte resultaten oplevert voor numerieke arrays. Laten we het sorteerproces opsplitsen:
- JavaScript converteert elk element van de array naar een string.
- Vervolgens vergelijkt het de UTF-16-code-eenheden van elk teken in de tekenreeksen en sorteert deze op basis van de Unicode-codepuntwaarde.
Dit is wat er met uw array gebeurt:
- De getallen worden omgezet in strings:
['20', '5.2', '-120', '100', '30', '0']>. - Wanneer alfabetisch gesorteerd,
-120>komt op de eerste plaats omdat->heeft een lagere Unicode-codepuntwaarde dan cijfers (0>naar9>). Dan komt0>, gevolgd door100>,20>,30>, En5.2>.
Voorbeeld 4: Numerieke waarde sorteren met vergelijkfunctie
tekenreeks formatter
We kunnen de onverwachte fout die in het bovenstaande voorbeeld is opgetreden, oplossen door de methode sort() voor numerieke waarden te gebruiken met behulp van de volgende vergelijkingsfunctie.
Javascript let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic: 20 - (5.2) = +ve =>5.2 zou vóór 20 worden geplaatst, 20 - (-120) = +ve => -120 zou vóór 20 worden geplaatst, 20 - (100) = -ve => 100 zou na 20 worden geplaatst, 20 - (30) = - ve => 30 zou na 20 worden geplaatst, 20 - (0) = +ve => 0 zou vóór 20 worden geplaatst. Op dezelfde manier controleren we voor elk element en plaatsen we ze dienovereenkomstig in iteraties. */ functie vergelijken(a, b) { return a - b; } console.log(nummers.sort(vergelijken));> Uitvoer
[ -120, 0, 5.2, 20, 30, 100 ]>
Uitleg:
- De
compare>functie trekt afb>vana>. Als het resultaat negatief is,a>komt voorb>in de gesorteerde array; indien positief,b>komt voora>; indien nul, blijft hun relatieve volgorde ongewijzigd. - Door deze aangepaste vergelijkingsfunctie aan te bieden aan de
sort()>methode sorteert JavaScript de arraynumbers>gebaseerd op de numerieke waarden van de elementen.
Ga dit alstublieft door Hoe numerieke arrays te sorteren met JavaScript? , om te weten hoe de JavaScript-array-sorteerfunctie werkt
We hebben een volledige lijst met Javascript Array-methoden. Om deze te controleren, kunt u deze doornemen Javascript Array Volledige referentie artikel.
Ondersteunde browsers:
- Google Chrome
- Rand
- Internet Explorer
- Firefox
- Opera
- Safari