JavaScript Array sort() Metode

Det sort()> metode i JavaScript arrangerer elementerne i et array på plads og returnerer det sorterede array. Som standard sorterer den elementer alfabetisk og behandler dem som strenge.

Til numerisk sortering kan du dog give en brugerdefineret sammenligningsfunktion. Denne funktion dikterer sorteringskriterierne, hvilket tillader præcis kontrol over sorteringsprocessen. `sort()` forbedrer effektiviteten og funktionaliteten af ​​JavaScript-applikationer ved at give dig mulighed for at organisere array-elementer i overensstemmelse med specifikke krav på en professionel og formel måde.

Syntaks

arr.sort(compareFunction); 

Parametre

  • array> : Det array, der skal sorteres.
  • compareFunction> (Valgfrit): En funktion, der definerer sorteringsrækkefølgen. Hvis de udelades, sorteres array-elementerne baseret på deres streng Unicode-kodepunkter.

Returværdi

Denne metode returnerer referencen for det sorterede originale array.

Eksempler:

Eksempel 1: Sortering af en række strenge

Dette eksempel viser brugen af ​​sort()-funktionen.

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(); 

Produktion
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Forklaring:

Det sort()> metode omarrangerer elementerne i arr> array alfabetisk, hvilket producerer output ['Geeks', 'Geeks', 'for']> .

Eksempel 2: Sortering af en række tal uden sammenligningsfunktion

Her, den sortere() metoden arrangerer elementerne i arrayet i stigende rækkefølge.

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(); 

Produktion
[ 1, 2, 4, 5, 8 ] 

Forklaring:

Det sort()> metode kaldes på en matrix af tal [2, 5, 8, 1, 4]> . Det sort()> metoden vil sortere elementerne alfabetisk, fordi der ikke findes nogen sammenligningsfunktion. Derfor bliver outputtet [1, 2, 4, 5, 8]> , som er sorteret alfabetisk baseret på strengrepræsentationerne af tallene.

Eksempel 3: Sortering af numerisk værdi uden sammenligningsfunktion

Her sorterer vi numerisk værdi uden sammenligningsfunktion

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort()) 

Produktion
[ -120, 0, 100, 20, 30, 5.2 ] 

Forklaring:

Når du bruger sort()> metode uden en sammenligningsfunktion, sorterer JavaScript array-elementer som strenge som standard, hvilket muligvis ikke altid giver de forventede resultater for numeriske arrays. Lad os nedbryde sorteringsprocessen:

  • JavaScript konverterer hvert element i arrayet til en streng.
  • Den sammenligner derefter UTF-16-kodeenhederne for hvert tegn i strengene og sorterer dem baseret på Unicode-kodepunktværdien.

Her er, hvad der sker med dit array:

  • Tallene konverteres til strenge: ['20', '5.2', '-120', '100', '30', '0']> .
  • Når sorteret alfabetisk, -120> kommer først fordi -> har en lavere Unicode-kodepunktværdi end cifre ( 0> til 9> ). Så kommer 0> , efterfulgt af 100> , 20> , 30> , og 5.2> .

Eksempel 4: Sortering af numerisk værdi med sammenligningsfunktion

Vi kan løse den uventede fejl, der opstod i ovenstående eksempel, ved at bruge sort()-metoden til numerik ved at bruge følgende sammenligningsfunktion.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 ville blive placeret før 20, 20 - (-120) = +ve => -120 ville blive placeret før 20, 20 - (100) = -ve => 100 ville blive placeret efter 20, 20 - (30) = - ve => 30 ville blive placeret efter 20, 20 - (0) = +ve => 0 ville blive placeret før 20. På samme måde kontrollerer og placerer vi dem i gentagelser for hvert element. */ function compare(a, b) { return a - b; } console.log(numbers.sort(compare)); 

Produktion
[ -120, 0, 5.2, 20, 30, 100 ] 

Forklaring:

  • Det compare> funktion trækker fra b> fra a> . Hvis resultatet er negativt, a> kommer før b> i det sorterede array; hvis det er positivt, b> kommer før a> ; hvis nul, forbliver deres relative rækkefølge uændret.
  • Ved at give denne brugerdefinerede sammenligningsfunktion til sort()> metode, sorterer JavaScript arrayet numbers> baseret på de numeriske værdier af dets elementer.

Gå venligst igennem dette Hvordan sorterer man numerisk array ved hjælp af JavaScript? , for at vide, hvordan javascript-array-sorteringsfunktionen fungerer

Vi har en komplet liste over Javascript Array-metoder, for at kontrollere dem, gå venligst igennem dette Javascript Array Komplet reference artikel.

Understøttede browsere:

  • Google Chrome
  • Edge
  • Internet Explorer
  • Firefox
  • Opera
  • Safari