Iteraattorin kutsut JavaScriptissä
Jokaisen iteratorin peräkkäisen kutsun tulee palauttaa objekti erityisessä rakenteessa. Katsotaanpa sitä. Oletetaan, että meillä on taulukko:
let arr = [1, 2, 3];
Haetaan taulukon iteraattori muuttujaan:
let 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:
console.log( iter.next() ); // {value: 1, done: false}
Metodin next peräkkäinen kutsu
antaa joka kerta seuraavan
alkion:
console.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:
console.log( iter.next() ); // {value: undefined, done: true}
Hae Map-kokoelman iteraattori.
Kutsu sitä peräkkäin,
kunnes kokoelman alkiot loppuvat.
Hae NodeList-kokoelman iteraattori.
Kutsu sitä peräkkäin,
kunnes kokoelman alkiot loppuvat.
Hae HTMLCollection-kokoelman iteraattori.
Kutsu sitä peräkkäin,
kunnes kokoelman alkiot loppuvat.