Pozivi iteratora u JavaScriptu
Svaki uzastopni poziv iteratora mora da vrati objekat posebne strukture. Hajde da je razmotrimo. Neka imamo niz:
let arr = [1, 2, 3];
Dobijamo iterator niza u promenljivu:
let iter = arr[Symbol.iterator]();
Sada ova promenljiva sadrži objekat
sa metodom next. Ovaj metod će vraćati
objekat sa ključem value, koji sadrži
vrednost elementa, i ključem done,
koji sadrži informaciju o tome, da li je
iteracija završena ili ne:
console.log( iter.next() ); // {value: 1, done: false}
Uzastopni poziv metoda next
će svaki put davati sledeći
element:
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 čim se elementi iscrpe, videćemo sledeće vrednosti:
console.log( iter.next() ); // {value: undefined, done: true}
Dobijte iterator kolekcije Map.
Uzastopno ga pozivajte,
dok se elementi kolekcije ne iscrpe.
Dobijte iterator kolekcije NodeList.
Uzastopno ga pozivajte,
dok se elementi kolekcije ne iscrpe.
Dobijte iterator kolekcije HTMLCollection.
Uzastopno ga pozivajte,
dok se elementi kolekcije ne iscrpe.