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.
html listeboks
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:
Detsort()>metode omarrangerer elementerne iarr>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.
import myreJavaScript
// 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:
Detsort()>metode kaldes på en matrix af tal[2, 5, 8, 1, 4]>. Detsort()>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.
hashing i datastruktur
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 brugersort()>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>til9>). Så kommer0>, efterfulgt af100>,20>,30>, og5.2>.
Eksempel 4: Sortering af numerisk værdi med sammenligningsfunktion
mysql venstre join
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 frab>fraa>. Hvis resultatet er negativt,a>kommer førb>i det sorterede array; hvis det er positivt,b>kommer føra>; hvis nul, forbliver deres relative rækkefølge uændret. - Ved at give denne brugerdefinerede sammenligningsfunktion til
sort()>metode, sorterer JavaScript arrayetnumbers>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