„JavaScript“ masyvo rūšiavimas - kaip naudoti JS rūšiavimo metodus (su kodų pavyzdžiais)

„JavaScript“ sistemoje masyvo elementus galime lengvai rūšiuoti naudodami integruotą metodą, vadinamą rūšiavimo () funkcija.

Tačiau duomenų tipai (eilutė, skaičius ir pan.) Gali skirtis nuo vieno masyvo. Tai reiškia, kad vien rūšiavimo () metodo naudojimas ne visada yra tinkamas sprendimas.

Šiame įraše sužinosite, kaip rūšiuoti masyvą „JavaScript“, naudojant eilių ir skaičių metodą sort ().

Styginių masyvas

Pradėkime nuo stygų:

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

Kai naudosime rūšiavimo () metodą, elementai pagal numatytuosius nustatymus bus rūšiuojami didėjimo tvarka (nuo A iki Z):

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

Jei norite rūšiuoti masyvą mažėjimo tvarka, vietoj to turite naudoti atvirkštinį () metodą:

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

Skaičių masyvas

Deja, rūšiuoti numerius nėra taip paprasta. Jei rūšiavimo metodą taikysime tiesiogiai skaičių masyve, pamatysime netikėtą rezultatą:

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

Kodėl skaičių () rūšis neveikia

Iš tikrųjų tai veikia, tačiau ši problema kyla dėl to, kad „JavaScript“ rūšiuoja skaičius abėcėlės tvarka. Leiskite man tai paaiškinti išsamiai.

Pagalvokime apie A = 1, B = 2 ir C = 3.

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

Pavyzdžiui, jei turime tris eilutes kaip C (3), BC (23) ir AB (12), „JavaScript“ jas rūšiuos kaip AB, BC ir C didėjimo tvarka, kuri yra abėcėlės tvarka teisinga.

Tačiau „JavaScript“ rūšiuos skaičius (dar kartą abėcėlės tvarka) kaip 12, 23 ir 3, o tai neteisinga.

Sprendimas: funkcija „Palyginti“

Laimei, galime palaikyti rūšiavimo () metodą naudodami pagrindinę palyginimo funkciją, kuri atliks apgaulę:

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

Rūšiavimo metodas, laimei, gali rūšiuoti neigiamą, nulinę ir teigiamą reikšmes teisinga tvarka. Kai rūšiavimo () metodas lygina dvi reikšmes, jis siunčia reikšmes mūsų palyginimo funkcijai ir rūšiuoja vertes pagal grąžintą vertę.

  • Jei rezultatas yra neigiamas, a rūšiuojamas prieš b.
  • Jei rezultatas teigiamas, b rūšiuojamas prieš a.
  • Jei rezultatas yra 0, niekas nesikeičia.

Viskas, ko mums reikia, yra lyginimo funkcijos naudojimas rūšiavimo () metodu:

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

Jei norime rūšiuoti skaičius mažėjančia tvarka, šį kartą turime atimti antrąjį parametrą (b) iš pirmojo (a):

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

Apvyniokite

Taigi, kaip matome, masyvo elementus galima lengvai surūšiuoti naudojant „JavaScript“ naudojant rūšiavimo () metodą, jei mokame jį teisingai naudoti. Tikiuosi, kad mano pranešimas padės jums suprasti, kaip teisingai naudoti „sort“) metodą „JavaScript“.

Jei norite sužinoti daugiau apie interneto plėtrą, nedvejodami apsilankykite mano „Youtube“ kanale.

Ačiū, kad skaitėte!