Kihagyás

JavaScript Ismétléses Vezérlés (Ciklusok)

Bevezetés

A ciklusok lehetővé teszik, hogy egy műveletsorozatot többször végrehajtsunk, ami rendkívül hasznos, ha ismétlődő feladatokat kell elvégezni. JavaScriptben többféle ciklus létezik, amelyek közül a leggyakrabban használtak:

  • for ciklus
  • while ciklus
  • do...while ciklus
  • for...of és for...in ciklusok (iteráció tömbökön és objektumokon)
  • forEach ciklus (tömbökön)

for ciklus

A for ciklus az egyik leggyakrabban használt ciklusfajta, amely egy számlálón alapul.

Szintaxis

for (inicializálás; feltétel; léptetés) {
    // A végrehajtandó kódblokk
}

Példa

for (let i = 0; i < 5; i++) {
    console.log("A számláló értéke: " + i);
}

Ez a ciklus ötször fut le, és kiírja a számláló (i) értékét 0-tól 4-ig.

while ciklus

A while ciklus addig fut, amíg a megadott feltétel igaz.

Szintaxis

while (feltétel) {
    // A végrehajtandó kódblokk
}

Példa

let i = 0;

while (i < 5) {
    console.log("A számláló értéke: " + i);
    i++;
}

Ez a ciklus szintén ötször fut le, hasonlóan a for ciklushoz.

do...while ciklus

A do...while ciklus hasonló a while ciklushoz, de legalább egyszer mindig végrehajtja a kódot, mielőtt ellenőrizné a feltételt.

Szintaxis

do {
    // A végrehajtandó kódblokk
} while (feltétel);

Példa

let i = 0;
do {
    console.log("A számláló értéke: " + i);
    i++;
} while (i < 5);

Ez a ciklus szintén ötször fut le, de legalább egyszer mindig lefut, még akkor is, ha a feltétel kezdettől fogva hamis.

for...of ciklus

A for...of ciklus tömbökön és más iterálható objektumokon történő iterációra szolgál.

Szintaxis

for (let elem of iterable) {
    // A végrehajtandó kódblokk
}

Példa

let szamok = [1, 2, 3, 4, 5];

for (let szam of szamok) {
    console.log(szam);
}

Ez a ciklus végigmegy a szamok elemein, és kiírja azokat.

for...in ciklus

A for...in ciklus objektumok kulcsain való iterációra szolgál.

Szintaxis

for (let kulcs in objektum) {
    // A végrehajtandó kódblokk
}

Példa

let auto = { marka: "Ford", modell: "Mustang", ev: 1969 };

for (let kulcs in auto) {
    console.log(kulcs + ": " + auto[kulcs]);
}

Ez a ciklus végigmegy az auto objektum kulcsain, és kiírja azokat a hozzájuk tartozó értékekkel együtt.

forEach metódus tömbön

A JavaScript forEach metódusa egy egyszerű és hatékony módja annak, hogy végigmenjünk egy tömb elemein, és egy megadott függvényt alkalmazzunk minden egyes elemre.

Szintaxis

tömb.forEach(function(elem, index, tömb) {
    // A végrehajtandó kódblokk
});

Paraméterek:

  • elem: A tömb aktuális eleme.
  • index (opcionális): Az aktuális elem indexe a tömbben.
  • tömb (opcionális): Maga a tömb, amelyen a forEach metódust hívják.

Példa

let szamok = [1, 2, 3, 4, 5];

szamok.forEach(function(elem, index) {
    console.log(`A ${index}. elem értéke: ${elem}`);
});

Ez a forEach ciklus végigmegy a szamok tömbön, és kiírja minden elem indexét és értékét:

A 0. elem értéke: 1
A 1. elem értéke: 2
A 2. elem értéke: 3
A 3. elem értéke: 4
A 4. elem értéke: 5

Arrow function

A forEach ciklust gyakran nyílfüggvénnyel (arrow function) is használják, ami rövidebb szintaxist tesz lehetővé:

Szintaxis

szamok.forEach((elem, index) => {
    console.log(`A ${index}. elem értéke: ${elem}`);
});

Fontos megjegyzések

  • A forEach metódus nem állítható meg vagy szakítható meg. Ha meg kell szakítani a ciklust, akkor for vagy for...of ciklus használata javasolt.
  • A forEach nem ad vissza új tömböt. Ha új tömbre van szükséged, használj másik tömb metódust, például map, filter vagy reduce.

További Példa - Tömb elemeinek összegzése

let osszeg = 0;

szamok.forEach((elem) => {
    osszeg += elem;
});

console.log(`A szamok összege: ${osszeg}`);

Ez a ciklus végigmegy a tömbön, és összeadja az elemek értékeit.

for...of vagy forEach?

A forEach és a for...of ciklusok közötti választás attól függ, milyen feladatot szeretnél megoldani, és milyen szempontok fontosak számodra. Mindkét módszer tömbökön (és más iterálható objektumokon) történő iterációra alkalmas, de vannak különbségek közöttük.

  • forEach: Használd, ha tömbökön szeretnél végigmenni, és minden elemre alkalmazni szeretnél egy függvényt, különösebb megszakítási vagy folytatási logika nélkül. Hasznos, ha deklaratív, függvényalapú megközelítést preferálsz.
  • for...of: Használd, ha rugalmasabb cikluskezelésre van szükséged, például megszakításra vagy aszinkron műveletekre. Ez a ciklus általában akkor jön jól, ha nem csak tömbökkel, hanem más iterálható objektumokkal is dolgozol.

További Források