Iteraatori väljakutsed JavaScriptis
Iga iteratiivi järjestikune väljakutse peab tagastama objekti spetsiaalse struktuuriga. Vaatame seda lähemalt. Olgu meil massiiv:
let arr = [1, 2, 3];
Saame massiivi iteraatori muutujasse:
let iter = arr[Symbol.iterator]();
Nüüd sisaldab see muutuja objekti
meetodiga next. See meetod tagastab
objekti võtmega value, mis sisaldab
elemendi väärtust, ja võtmega done,
mis sisaldab teavet selle kohta, kas
loendamine on lõppenud või mitte:
console.log( iter.next() ); // {value: 1, done: false}
Meetodi next järjestikune väljakutse
annab iga kord järgmise
elemendi:
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 niipea kui elemendid otsa saavad, näeme järgmisi väärtusi:
console.log( iter.next() ); // {value: undefined, done: true}
Hankige kogumi Map iteraator.
Kutsuge seda järjestikku välja,
kuni kogumi elemendid otsa saavad.
Hankige kogumi NodeList iteraator.
Kutsuge seda järjestikku välja,
kuni kogumi elemendid otsa saavad.
Hankige kogumi HTMLCollection iteraator.
Kutsuge seda järjestikku välja,
kuni kogumi elemendid otsa saavad.