logo

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.

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 myre
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:

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:

  • Detcompare>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 tilsort()>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