logo

JavaScript Array sort() Methode

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-algoritme
JavaScript
// 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:

  • Decompare>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 desort()>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