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:

javascriptlet arr = [1, 2, 3];

Szerezzük meg a tömb iterátorát egy változóba:

javascriptlet 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:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}

A next metódus szekvenciális hívása minden alkalommal a következő elemet fogja kiadni:

javascriptconsole.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:

javascriptconsole.log( iter.next() ); // {value: undefined, done: true}
Задание 1

Szerezd meg a Map gyűjtemény iterátorát. Hívd szekvenciálisan, amíg a gyűjtemény elemei el nem fogynak.

Задание 2

Szerezd meg a NodeList gyűjtemény iterátorát. Hívd szekvenciálisan, amíg a gyűjtemény elemei el nem fogynak.

Задание 3

Szerezd meg a HTMLCollection gyűjtemény iterátorát. Hívd szekvenciálisan, amíg a gyűjtemény elemei el nem fogynak.