Junior
Hogyan rendeznéd a számok tömbjét?
sobes.tech MI
Válasz az MI-től
// A sort() metódus használata összehasonlító függvénnyel
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Növekvő sorrend
// Csökkenő sorrendhez:
// numbers.sort((a, b) => b - a);
A JavaScript sort() metódusa a tömb elemeit helyben rendezi. Alapértelmezés szerint a elemeket stringgé alakítja és lexikografikus sorrendben rendezi. A számok helyes rendezéséhez át kell adni egy összehasonlító függvényt a sort()-nak.
Az összehasonlító függvény két argumentumot fogad, a és b.
- Ha a függvény negatív értéket ad vissza, akkor
abelőtt kerül. - Ha pozitív értéket ad vissza, akkor
baelőtt kerül. - Ha 0-t ad vissza, a sorrend változatlan marad.
A számok növekvő sorrendbe rendezéséhez (a, b) => a - b használható. Ha a kisebb, mint b, az eredmény negatív, és a kerül előre.
Csökkenő sorrendhez (a, b) => b - a használható. Ha b kisebb, mint a, az eredmény pozitív, és b kerül előre.
Egyéb módszerek (kevésbé gyakori, de hasznos):
-
localeCompare()módszer számokat tartalmazó stringekhez:// Nem ajánlott tiszta számokra, de használható // ha a számokat stringként tárolják, és figyelembe kell venni a helyi beállításokat. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // [ "1", "2", "10" ] sorrendben -
A tömb másolatának készítése a rendezés előtt:
// Ha meg akarja tartani az eredeti tömböt const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // vagy // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);