Chiamate dell'iteratore in JavaScript
Ogni chiamata successiva dell'iteratore deve restituire un oggetto con una struttura speciale. Esaminiamola. Supponiamo di avere un array:
let arr = [1, 2, 3];
Otteniamo l'iteratore dell'array in una variabile:
let 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:
console.log( iter.next() ); // {value: 1, done: false}
Chiamate successive del metodo next
restituiranno ogni volta l'elemento
successivo:
console.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:
console.log( iter.next() ); // {value: undefined, done: true}
Ottieni l'iteratore della collezione Map.
Chiamalo sequenzialmente,
finché gli elementi della collezione non sono terminati.
Ottieni l'iteratore della collezione NodeList.
Chiamalo sequenzialmente,
finché gli elementi della collezione non sono terminati.
Ottieni l'iteratore della collezione HTMLCollection.
Chiamalo sequenzialmente,
finché gli elementi della collezione non sono terminati.