JavaScript tömb rendezés - JS rendezési módszerek használata (kód példákkal)

A JavaScript-ben egy tömb elemeit könnyedén rendezhetjük a sort () függvénynek nevezett beépített módszerrel.

Az adattípusok (karakterlánc, szám stb.) Azonban tömbönként eltérhetnek. Ez azt jelenti, hogy a sort () metódus önmagában nem mindig megfelelő megoldás.

Ebben a bejegyzésben megtudhatja, hogyan rendezhet egy tömböt a JavaScript-ben a sort () metódus használatával a karakterláncokhoz és számokhoz.

Húrok tömbje

Kezdjük a húrokkal:

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

A sort () metódus használatakor az elemek alapértelmezés szerint növekvő sorrendben (A-tól Z-ig) lesznek rendezve:

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

Ha a tömböt csökkenő sorrendbe szeretné rendezni, akkor a fordított () metódust kell használnia:

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

Számok tömbje

A számok rendezése sajnos nem ilyen egyszerű. Ha a rendezési módszert közvetlenül egy számtömbre alkalmazzuk, akkor váratlan eredményt fogunk látni:

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

Miért nem működik a sort () metódus a számoknál?

Valójában működik, de ez a probléma azért fordul elő, mert a JavaScript betűrendben rendezi a számokat. Hadd magyarázzam el ezt részletesen.

Gondoljunk A = 1-re, B = 2-re és C = 3-ra.

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

Például, ha három karakterláncunk van: C (3), BC (23) és AB (12), a JavaScript növekvő sorrendben rendezi őket AB, BC és C néven, ami ábécé sorrendben helyes.

A JavaScript azonban a számokat (ismét betűrendben) 12, 23 és 3 értékként rendezi, ami helytelen.

Megoldás: Az Összehasonlítás funkció

Szerencsére támogatni tudjuk a sort () metódust egy alapvető összehasonlító függvénnyel, amely elvégzi a trükköt:

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

A rendezési módszer szerencsére képes a negatív, nulla és pozitív értékek helyes sorrendbe rendezésére. Amikor a sort () metódus összehasonlít két értéket, elküldi az értékeket az összehasonlító függvényünknek, és az értékeket a visszaküldött érték szerint rendezi.

  • Ha az eredmény negatív, az a rendeződik b elé.
  • Ha az eredmény pozitív, a b az a előtt rendeződik.
  • Ha az eredmény 0, akkor semmi sem változik.

Mindössze annyit kell tennünk, hogy a sort () módszeren belül az összehasonlító függvényt használjuk:

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

Ha csökkenő sorrendben akarjuk rendezni a számokat, akkor ezúttal le kell vonnunk a második (b) paramétert az elsőről (a):

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

Csomagolás

Tehát, mint láthatjuk, egy tömb elemeinek rendezése könnyen elvégezhető a JavaScript-ben a sort () metódussal, ha tudjuk, hogyan kell helyesen használni. Remélem, hogy a hozzászólásom segít megérteni, hogy miként lehet a sort () módszert helyes módon használni a JavaScript-ben.

Ha szeretne többet megtudni a webfejlesztésről, látogasson el nyugodtan a Youtube csatornámra.

Köszönöm, hogy elolvasta!