Objetivos
Iterador
Um iterador, unidirecional, é tipo do dado que em seu conteúdo são armazenados referências para
elementos de vetor, estrutura de dados dinâmica ou semelhantes.
Tab. 1: Abstração de um iterador
referência 0 |
referência 1 |
referência 2 |
(...) |
referência N |
elemento 0 |
elemento 1 |
elemento 2 |
(...) |
elemento N |
Para iterarmos um tipo de dado iterador utilizamos os comandos de repetição
for of-in, por exemplo.
Sintaxe
for ( let [chave, valor] of <iteravel>){
//corpo for
}
Para recuperarmos o iterador, precisamos invocar o método entries de alguma
coleção que tenha suporte. Como exemplo, vamos utilizar a classe Array nativa:
Sintaxe
nome_array.entries();
Exemplo 1
let dados = [1,2,3,4];
iterador = dados.entries();
for ( let [chave,valor] of iterador)
console.log(chave,":",valor);
Saída
0 : 1
1 : 2
2 : 3
3 : 4
Os comandos for-of e for-in invocam o métódo next internamente
a cada loop/laço realizado nesses comandos.
Todo iterável deve implementar o método next que retorna próximo elemento
contido no iterável. O acesso ao conteúdo de um iterador é feito de forma
unidirecional.
Sintaxe
objeto = nome_iterador.next();
Onde
objeto: próximo valor índice/chave, valor e done indicando elemento existe.
Retorno
Objeto iterável no formato { value : [indice,valor], done : true ou false}
Exemplo 2
let dados = [1];
iterador = dados.entries();
proximo = iterador.next();
console.log(proximo);
console.log(proximo.value);
console.log(proximo.done);
Saída
{ value: [ 0, 1 ], done: false }
[ 0, 1 ]
false
Histórico de atualizações
- 15/08/2025 - revisão 3 - Ajustes: pontuais, remoção lixo e objetivos
- 26/09/2024 - revisão 2 - Adição de 'tab. 1'; correção: 'Recuperando um iterador'; ajustes pontuais
- 05/10/2023 - revisão 1 - Correção em layout, navegação, erros gramaticais
- 31/05/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.