JavaScript Array sort() Metode

De sort()> metode i JavaScript ordner elementene i en matrise på plass og returnerer den sorterte matrisen. Som standard sorterer den elementer alfabetisk, og behandler dem som strenger.

For numerisk sortering kan du imidlertid tilby en tilpasset sammenligningsfunksjon. Denne funksjonen dikterer sorteringskriteriene, og gir nøyaktig kontroll over sorteringsprosessen. `sort()` forbedrer effektiviteten og funksjonaliteten til JavaScript-applikasjoner ved å gjøre det mulig for deg å organisere array-elementer i henhold til spesifikke krav på en profesjonell og formell måte.

Syntaks

arr.sort(compareFunction); 

Parametere

  • array> : Matrisen som skal sorteres.
  • compareFunction> (Valgfritt): En funksjon som definerer sorteringsrekkefølgen. Hvis de utelates, blir array-elementene sortert basert på strengen deres Unicode-kodepunkter.

Returverdi

Denne metoden returnerer referansen til den sorterte opprinnelige matrisen.

Eksempler:

Eksempel 1: Sortering av en rekke strenger

Dette eksemplet viser bruken av sort()-funksjonen.

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

Produksjon
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Forklaring:

De sort()> metoden omorganiserer elementene i arr> array alfabetisk, og produserer utdataene ['Geeks', 'Geeks', 'for']> .

Eksempel 2: Sortering av en rekke tall uten sammenligningsfunksjon

Her, den sortere() metoden arrangerer elementene i matrisen i stigende rekkefø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(); 

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

Forklaring:

De sort()> metode kalles på en rekke tall [2, 5, 8, 1, 4]> . De sort()> metoden vil sortere elementene alfabetisk fordi ingen sammenligningsfunksjon er gitt. Derfor vil utgangen være [1, 2, 4, 5, 8]> , som er sortert alfabetisk basert på strengrepresentasjonene til tallene.

Eksempel 3: Sortering av numerisk verdi uten sammenligningsfunksjon

Her sorterer vi numerisk verdi uten sammenligningsfunksjon

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

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

Forklaring:

Når du bruker sort()> metode uten en sammenligningsfunksjon, sorterer JavaScript array-elementer som strenger som standard, noe som kanskje ikke alltid gir de forventede resultatene for numeriske arrays. La oss bryte ned sorteringsprosessen:

  • JavaScript konverterer hvert element i matrisen til en streng.
  • Den sammenligner deretter UTF-16-kodeenhetene for hvert tegn i strengene og sorterer dem basert på Unicode-kodepunktverdien.

Her er hva som skjer med matrisen din:

  • Tallene konverteres til strenger: ['20', '5.2', '-120', '100', '30', '0']> .
  • Når sortert alfabetisk, -120> kommer først fordi -> har en lavere Unicode-kodepunktverdi enn sifre ( 0> til 9> ). Så kommer 0> , etterfulgt av 100> , 20> , 30> , og 5.2> .

Eksempel 4: Sortering av numerisk verdi med sammenligningsfunksjon

Vi kan løse den uventede feilen som oppstod i eksemplet ovenfor ved å bruke sort()-metoden for numerikk ved å bruke følgende sammenligningsfunksjon.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 ville bli plassert før 20, 20 - (-120) = +ve => -120 ville bli plassert før 20, 20 - (100) = -ve => 100 ville bli plassert etter 20, 20 - (30) = - ve => 30 vil bli plassert etter 20, 20 - (0) = +ve => 0 vil bli plassert før 20. På samme måte for hvert element sjekker vi og plasserer dem deretter i iterasjoner. */ function compare(a, b) { return a - b; } console.log(numbers.sort(compare)); 

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

Forklaring:

  • De compare> funksjon trekker fra b> fra a> . Hvis resultatet er negativt, a> kommer før b> i den sorterte matrisen; hvis det er positivt, b> kommer før a> ; hvis null, forblir deres relative rekkefølge uendret.
  • Ved å gi denne tilpassede sammenligningsfunksjonen til sort()> metode, sorterer JavaScript matrisen numbers> basert på de numeriske verdiene til elementene.

Vennligst gå gjennom dette Hvordan sortere numerisk matrise ved hjelp av JavaScript? , for å vite hvordan javascript array-sorteringsfunksjonen fungerer

Vi har en komplett liste over Javascript Array-metoder, for å sjekke dem, gå gjennom dette Javascript Array Komplett referanse artikkel.

Støttede nettlesere:

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