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!