Iteraattorin kutsut JavaScriptissä

Jokaisen iteratorin peräkkäisen kutsun tulee palauttaa objekti erityisessä rakenteessa. Katsotaanpa sitä. Oletetaan, että meillä on taulukko:

javascriptlet arr = [1, 2, 3];

Haetaan taulukon iteraattori muuttujaan:

javascriptlet iter = arr[Symbol.iterator]();

Nyt tämä muuttuja sisältää objektin metodilla next. Tämä metodi palauttaa objektin, jossa on avain value, joka sisältää alkion arvon, ja avain done, joka sisältää tiedon siitä, onko läpikäynti päättynyt vai ei:

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

Metodin next peräkkäinen kutsu antaa joka kerta seuraavan alkion:

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

Ja heti, kun alkiot loppuvat, näemme seuraavat arvot:

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

Hae Map-kokoelman iteraattori. Kutsu sitä peräkkäin, kunnes kokoelman alkiot loppuvat.

Задание 2

Hae NodeList-kokoelman iteraattori. Kutsu sitä peräkkäin, kunnes kokoelman alkiot loppuvat.

Задание 3

Hae HTMLCollection-kokoelman iteraattori. Kutsu sitä peräkkäin, kunnes kokoelman alkiot loppuvat.