JavaScript sortiranje niza - Kako koristiti metode sortiranja JS (s primjerima koda)

U JavaScript-u možemo lako sortirati elemente niza pomoću ugrađene metode koja se naziva funkcija sort ().

Međutim, vrste podataka (niz, broj i tako dalje) mogu se razlikovati od jednog polja do drugog. To znači da upotreba same metode sort () nije uvijek prikladno rješenje.

U ovom ćete postu naučiti kako sortirati niz u JavaScript-u pomoću metode sort () za nizove i brojeve.

Niz žica

Počnimo sa nizovima:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Kada koristimo metodu sort (), elementi će se prema zadanim postavkama sortirati u rastućem redoslijedu (A do Z):

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Ako više želite sortirati niz u opadajućem redoslijedu, umjesto njega trebate koristiti metodu reverse ():

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Niz brojeva

Razvrstavanje brojeva nažalost nije tako jednostavno. Ako primijenimo metodu sortiranja izravno na niz brojeva, vidjet ćemo neočekivani rezultat:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Zašto metoda sort () ne radi za brojeve

Zapravo radi, ali ovaj se problem događa jer JavaScript razvrstava brojeve po abecedi. Dopustite mi da to detaljno objasnim.

Zamislimo A = 1, B = 2 i C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Kao primjer, ako imamo tri niza kao C (3), BC (23) i AB (12), JavaScript će ih sortirati kao AB, BC i C u rastućem redoslijedu, što je abecedno točno.

Međutim, JavaScript će brojeve (opet po abecednom redu) razvrstati po 12, 23 i 3, što je netočno.

Rješenje: funkcija usporedbe

Srećom, metodu sort () možemo podržati osnovnom funkcijom usporedbe koja će učiniti trik:

function(a, b) {return a - b}

Način sortiranja, srećom, može sortirati negativne, nulte i pozitivne vrijednosti u ispravnom redoslijedu. Kada metoda sort () uspoređuje dvije vrijednosti, šalje vrijednosti našoj funkciji uspoređivanja i sortira vrijednosti prema vraćenoj vrijednosti.

  • Ako je rezultat negativan, a se sortira prije b.
  • Ako je rezultat pozitivan, b se sortira prije a.
  • Ako je rezultat 0, ništa se ne mijenja.

Sve što trebamo je korištenje funkcije uspoređivanja unutar metode sort ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Ako brojeve želimo sortirati u opadajućem redoslijedu, ovaj put moramo od prvog (a) oduzeti drugi parametar (b):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Zamotati

Dakle, kao što možemo vidjeti, sortiranje elemenata niza može se lako izvršiti u JavaScript-u metodom sort (), ako ga znamo pravilno koristiti. Nadam se da će vam moj post pomoći da shvatite kako na pravi način koristiti metodu sort () u JavaScript-u.

Ako želite saznati više o web razvoju, slobodno posjetite moj Youtube kanal.

Hvala na čitanju!