Pozivi iteratora u JavaScriptu

Svaki uzastopni poziv iteratora mora da vrati objekat posebne strukture. Hajde da je razmotrimo. Neka imamo niz:

javascriptlet arr = [1, 2, 3];

Dobijamo iterator niza u promenljivu:

javascriptlet 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:

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

Uzastopni poziv metoda next će svaki put davati sledeći element:

javascriptconsole.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:

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

Dobijte iterator kolekcije Map. Uzastopno ga pozivajte, dok se elementi kolekcije ne iscrpe.

Задание 2

Dobijte iterator kolekcije NodeList. Uzastopno ga pozivajte, dok se elementi kolekcije ne iscrpe.

Задание 3

Dobijte iterator kolekcije HTMLCollection. Uzastopno ga pozivajte, dok se elementi kolekcije ne iscrpe.