Volání iterátoru v JavaScriptu
Každé sekvenční volání iterátoru by mělo vrátit objekt speciální structury. Pojďme se na ni podívat. Předpokládejme, že máme pole:
let arr = [1, 2, 3];
Získáme iterátor pole do proměnné:
let iter = arr[Symbol.iterator]();
Nyní tato proměnná obsahuje objekt
s metodou next. Tato metoda bude vracet
objekt s klíčem value, obsahujícím
hodnotu prvku, a klíčem done,
obsahujícím informaci o tom, zda průchod
skončil, nebo ne:
console.log( iter.next() ); // {value: 1, done: false}
Sekvenční volání metody next
bude pokaždé vydávat následující
prvek:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
A jakmile prvky dojdou, uvidíme následující hodnoty:
console.log( iter.next() ); // {value: undefined, done: true}
Získejte iterátor kolekce Map.
Postupně jej volejte,
dokud prvky kolekce nedojdou.
Získejte iterátor kolekce NodeList.
Postupně jej volejte,
dokud prvky kolekce nedojdou.
Získejte iterátor kolekce HTMLCollection.
Postupně jej volejte,
dokud prvky kolekce nedojdou.