Chiamate dell'iteratore in JavaScript

Ogni chiamata successiva dell'iteratore deve restituire un oggetto con una struttura speciale. Esaminiamola. Supponiamo di avere un array:

javascriptlet arr = [1, 2, 3];

Otteniamo l'iteratore dell'array in una variabile:

javascriptlet iter = arr[Symbol.iterator]();

Ora questa variabile contiene un oggetto con il metodo next. Questo metodo restituirà un oggetto con la chiave value, che contiene il valore dell'elemento, e la chiave done, che contiene informazioni sul fatto che l'iterazione sia terminata o meno:

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

Chiamate successive del metodo next restituiranno ogni volta l'elemento successivo:

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

E non appena gli elementi saranno terminati, vedremo i seguenti valori:

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

Ottieni l'iteratore della collezione Map. Chiamalo sequenzialmente, finché gli elementi della collezione non sono terminati.

Задание 2

Ottieni l'iteratore della collezione NodeList. Chiamalo sequenzialmente, finché gli elementi della collezione non sono terminati.

Задание 3

Ottieni l'iteratore della collezione HTMLCollection. Chiamalo sequenzialmente, finché gli elementi della collezione non sono terminati.