Chamadas de iterador em JavaScript
Cada chamada sequencial do iterador deve retornar um objeto de uma estrutura especial. Vamos analisá-la. Suponha que temos um array:
let arr = [1, 2, 3];
Vamos obter o iterador do array em uma variável:
let iter = arr[Symbol.iterator]();
Agora, esta variável contém um objeto
com o método next. Este método retornará
um objeto com a chave value, contendo
o valor do elemento, e a chave done,
contendo informações sobre se a iteração
terminou ou não:
console.log( iter.next() ); // {value: 1, done: false}
Chamadas sequenciais do método next
retornarão o próximo elemento
a cada vez:
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 assim que os elementos acabarem, veremos os seguintes valores:
console.log( iter.next() ); // {value: undefined, done: true}
Obtenha o iterador da coleção Map.
Chame-o sequencialmente,
até que os elementos da coleção se esgotem.
Obtenha o iterador da coleção NodeList.
Chame-o sequencialmente,
até que os elementos da coleção se esgotem.
Obtenha o iterador da coleção HTMLCollection.
Chame-o sequencialmente,
até que os elementos da coleção se esgotem.