Sobes.tech
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 a b előtt kerül.
  • Ha pozitív értéket ad vissza, akkor b a elő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);