JavaScript Array sort() -menetelmä

The sort()> menetelmä JavaScript järjestää taulukon elementit paikoilleen ja palauttaa lajitellun taulukon. Oletuksena se lajittelee elementit aakkosjärjestykseen ja käsittelee niitä merkkijonoina.

Numeerista lajittelua varten voit kuitenkin tarjota mukautetun vertailutoiminnon. Tämä toiminto sanelee lajittelukriteerit, mikä mahdollistaa lajitteluprosessin tarkan hallinnan. `sort()` parantaa JavaScript-sovellusten tehokkuutta ja toimivuutta mahdollistamalla taulukon elementtien järjestämisen erityisvaatimusten mukaisesti ammattimaisesti ja muodollisesti.

Syntaksi

arr.sort(compareFunction); 

Parametrit

  • array> : Lajiteltava taulukko.
  • compareFunction> (Valinnainen): Funktio, joka määrittää lajittelujärjestyksen. Jos jätetään pois, taulukon elementit lajitellaan niiden Unicode-koodipisteiden merkkijonon perusteella.

Palautusarvo

Tämä menetelmä palauttaa lajitellun alkuperäisen taulukon viitteen.

Esimerkkejä:

Esimerkki 1: Merkkijonojen lajittelu

Tämä esimerkki näyttää sort()-funktion käytön.

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

Lähtö
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Selitys:

The sort()> menetelmä järjestää uudelleen elementit arr> matriisi aakkosjärjestyksessä, jolloin saadaan tulos ['Geeks', 'Geeks', 'for']> .

Esimerkki 2: Lukujoukon lajittelu ilman vertailutoimintoa

Tässä, järjestellä() menetelmä järjestää taulukon elementit nousevaan järjestykseen.

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

Lähtö
[ 1, 2, 4, 5, 8 ] 

Selitys:

The sort()> menetelmää kutsutaan lukujoukolla [2, 5, 8, 1, 4]> . The sort()> menetelmä lajittelee elementit aakkosjärjestykseen, koska vertailutoimintoa ei ole. Siksi tulos tulee olemaan [1, 2, 4, 5, 8]> , joka on lajiteltu aakkosjärjestykseen numeroiden merkkijonoesitysten perusteella.

Esimerkki 3: Numeerisen arvon lajittelu ilman vertailutoimintoa

Tässä lajittelemme numeerisia arvoja ilman vertailutoimintoa

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

Lähtö
[ -120, 0, 100, 20, 30, 5.2 ] 

Selitys:

Kun käytät sort()> -menetelmässä ilman vertailutoimintoa JavaScript lajittelee taulukon elementit oletuksena merkkijonoiksi, mikä ei välttämättä aina tuota odotettuja tuloksia numeerisille taulukoille. Puretaan lajitteluprosessi:

  • JavaScript muuntaa jokaisen taulukon elementin merkkijonoksi.
  • Sitten se vertaa merkkijonojen kunkin merkin UTF-16-koodiyksiköitä ja lajittelee ne Unicode-koodipistearvon perusteella.

Tässä on mitä taulukollesi tapahtuu:

  • Numerot muunnetaan merkkijonoiksi: ['20', '5.2', '-120', '100', '30', '0']> .
  • Kun lajitellaan aakkosjärjestykseen, -120> tulee ensin, koska -> on pienempi Unicode-koodipisteen arvo kuin numerot ( 0> to 9> ). Sitten tulee 0> , jonka jälkeen 100> , 20> , 30> , ja 5.2> .

Esimerkki 4: Numeerisen arvon lajittelu vertailutoiminnolla

Voimme ratkaista yllä olevassa esimerkissä ilmenneen odottamattoman virheen käyttämällä sort()-menetelmää numeerisille seuraavalla vertailufunktiolla.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 sijoitetaan ennen 20, 20 - (-120) = +ve => -120 sijoitetaan ennen 20, 20 - (100) = -ve => 100 sijoitetaan 20, 20 - (30) = - ve => 30 sijoitettaisiin 20:n jälkeen, 20 - (0) = +ve => 0 sijoitettaisiin ennen 20:tä. Samoin jokaisen elementin kohdalla tarkistetaan ja sijoitetaan ne vastaavasti iteraatioihin. */ funktio vertaa(a, b) { return a - b; } konsoli.loki(numerot.lajitella(vertaa));>>   
Lähtö Selitys:

  • The compare> funktio vähentää b> alkaen a> . Jos tulos on negatiivinen, a> tulee ennen b> lajitetussa taulukossa; jos positiivinen, b> tulee ennen a> ; jos nolla, niiden suhteellinen järjestys pysyy muuttumattomana.
  • Tarjoamalla tämän mukautetun vertailutoiminnon sort()> menetelmä, JavaScript lajittelee taulukon numbers> sen elementtien numeeristen arvojen perusteella.

Ole hyvä ja käy tämä läpi Kuinka lajitella numeerinen taulukko JavaScriptin avulla? , jotta tiedät, kuinka javascript-taulukon lajittelutoiminto toimii

Meillä on täydellinen luettelo Javascript Array -menetelmistä. Tarkista ne käymällä läpi tämä Javascript Array Täydellinen viittaus artikla.

Tuetut selaimet:

  • Google Chrome
  • Reuna
  • Internet Explorer
  • Firefox
  • Ooppera
  • Safari