logo

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.

hvordan sjekke skjermstørrelsen

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:

Desort()>metoden omorganiserer elementene iarr>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.

import maur
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:

Desort()>metode kalles på en rekke tall[2, 5, 8, 1, 4]>. Desort()>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.

fjærmoduler

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 brukersort()>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>til9>). Så kommer0>, etterfulgt av100>,20>,30>, og5.2>.

Eksempel 4: Sortering av numerisk verdi med sammenligningsfunksjon

javascript utskrift

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:

  • Decompare>funksjon trekker frab>fraa>. Hvis resultatet er negativt,a>kommer førb>i den sorterte matrisen; hvis det er positivt,b>kommer føra>; hvis null, forblir deres relative rekkefølge uendret.
  • Ved å gi denne tilpassede sammenligningsfunksjonen tilsort()>metode, sorterer JavaScript matrisennumbers>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