Iterátorhívások a JavaScriptben
Minden szekvenciális iterátorhívásnak egy speciális struktúrájú objektumot kell visszaadnia. Nézzük meg ezt a struktúrát. Tegyük fel, hogy van egy tömbünk:
let arr = [1, 2, 3];
Szerezzük meg a tömb iterátorát egy változóba:
let iter = arr[Symbol.iterator]();
Most ebben a változóban egy olyan objektum található,
amely rendelkezik egy next metódussal. Ez a metódus
egy objektumot fog visszaadni egy value kulccsal, amely
az elem értékét tartalmazza, és egy done kulccsal,
amely információt szolgáltat arról, hogy befejeződött-e
a bejárás vagy sem:
console.log( iter.next() ); // {value: 1, done: false}
A next metódus szekvenciális hívása
minden alkalommal a következő elemet
fogja kiadni:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
És amint az elemek elfogynak, a következő értékeket fogjuk látni:
console.log( iter.next() ); // {value: undefined, done: true}
Szerezd meg a Map gyűjtemény iterátorát.
Hívd szekvenciálisan,
amíg a gyűjtemény elemei el nem fogynak.
Szerezd meg a NodeList gyűjtemény iterátorát.
Hívd szekvenciálisan,
amíg a gyűjtemény elemei el nem fogynak.
Szerezd meg a HTMLCollection gyűjtemény iterátorát.
Hívd szekvenciálisan,
amíg a gyűjtemény elemei el nem fogynak.