O que são iteradores em JavaScript

O que são iteradores em JavaScript
JavaScript oferece várias maneiras de iterar através de uma coleção de valores de objetos, como loops. No entanto, Iteradores são introduzidos em JavaScript 1.7, que fornece um mecanismo para personalizar o comportamento de para cada e para… in loops e integra o conceito de iteração na linguagem central.

Se você precisar adicionar funcionalidade iterativa nativa a uma estrutura de dados bem encapsulada e personalizada, você deve usar iteradores JavaScript. Pode ser considerado uma maneira mais elegante de padronizar seus objetos personalizados.

Este artigo vai discutir iteradores em JavaScript. Também demonstraremos o uso de iteradores, iterables, Next () método e iteradores definidos pelo usuário. Então vamos começar!

Iteração em JavaScript

Em javascript, Iteração é um procedimento no qual uma coleção de estruturas ou instruções é repetida em uma sequência para um número predeterminado de vezes ou até que a condição adicionada seja verdadeira. Você pode utilizar rotações para iterar o conjunto especificado de instruções.

Por exemplo, declaramos uma matriz “contando”E com a ajuda do“para de”Loop, iremos iterar sobre a matriz especificada:

const conting = [1, 2, 3];
para (vamos X da contagem)
console.log (x);

Como resultado, cada valor será retornado e mostrado como saída:

Agora, vamos conferir o método para iterar sobre um objeto JavaScript. Para esse fim, em primeiro lugar, declararemos um objeto chamado “funcionário”E depois utilizar para de Loop para iterar sobre suas propriedades:

const funcionário = nome: 'Alex', designação: 'gerente';
para (const Prop of Funcionário)
console.log (prop);

Como você pode ver, a saída do código acima foi exibido um “TypeError”Mensagem que afirma que“funcionário”Objeto não é iterável. Por que isso acontece? Encontramos o TypeError porque o para… de loop requer um objeto iterável para iterar sobre as propriedades do objeto.

Para lidar com a situação atual, você pode usar o protocolo de iteração JavaScript, que o ajudará a tornar um objeto iterável para reter suas propriedades.

Protocolo de iteração JavaScript

O JavaScript fornece um protocolo de iteração para iterar objetos. Este protocolo especifica o procedimento de iteração usando “para de" laço. Os iteradores JavaScript são divididos em dois componentes: “Iterables" e "Iteradores”:

  • Iterables: Iterables são os objetos que implementam o “iterator ()”Método de iteração I.e. matriz ou string.
  • Iteradores: O objeto devolvido pelo “iterator ()”O método é conhecido como“Iterador““. Depois de obter o iterador, você pode usar o “próximo()”Método para acessar sequencialmente elementos iteráveis.

Pode ser difícil para você entender o uso desses métodos de relance, por isso passaremos sequencialmente por cada um deles nas seções abaixo do rumo.

Método seguinte () em JavaScript

““próximo()”É um método de objeto iterador que é invocado para retornar o próximo valor na sequência de iteração. Este método compreende as duas propriedades a seguir:

  • O "valor”A propriedade representa o valor atual na sequência de iteração e pode ser de qualquer tipo de dados.
  • O "feito”A propriedade é usada para representar o status de iteração, onde“falso”Significa que a iteração não está completa e“verdadeiro”Indica que o processo de iteração está concluído.

Vamos definir um iterador personalizado em JavaScript e acessar os elementos de uma matriz sequencialmente usando o método Next ().

Criação de iterador definido pelo usuário em JavaScript

O JavaScript permite criar um iterador definido pelo usuário e invocar o “próximo()”Método para acessar os elementos do objeto iterável.

Aqui, definimos o “ShowElement ()”Método e retornará o“valor" e "feitoPropriedade do objeto iterável que é aceito como um argumento:

Função ShowElements (arr)
deixe o número = 0;
retornar
próximo()
se (número < array.length)
retornar
Valor: Array [Número ++],
feito: false

retornar
Valor: indefinido,
feito: verdadeiro


Na próxima etapa, criaremos um “variedade”E depois passá -lo para o“ShowElement ()”Método como argumento. Então o "ShowElements ()”O método retornará um objeto iterável, ao qual armazenaremos em“Arriterator”:

const array = ['l', 'i', 'n', 'u', 'x'];
const Arriterator = ShowElements (Array);

Agora, cada vez que o “próximo()”O método é invocado com o“Arriterator”, Ele exibirá os valores do elemento de matriz em uma sequência com o definido“valor" e "feito”Propriedades:

console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());

Quando todos os elementos são iterados, o “valor”O valor da propriedade será definido como“indefinido", com "feito"Propriedade como"verdadeiro”:

A saída acima mencionada significa que criamos e executamos com sucesso um iterador definido pelo usuário em nosso programa usando o método Next (). Agora, vamos entender o conceito de iteráveis ​​também e ter uma compreensão clara e profunda de Símbolo.iterator () em javascript

Exemplo: Criando iteradores a partir de iteráveis ​​usando o símbolo.Método Iterator () em JavaScript
Neste exemplo, em primeiro lugar, declararemos uma matriz com os três valores a seguir:

const arr1 = ['l', 'i', 'n', 'u', 'x'];

Então, vamos invocar o “Símbolo.iterator ()”Método que retornará um objeto iterável e“Arriterator”Será armazenado seu valor:

const Arriterator = arr1 [símbolo.iterator] ();
console.log (Arriterator);

A execução do programa acima dado produzirá os iteradores da matriz:

Exemplo: Usando o método Next () sobre um objeto iterável em JavaScript
Este exemplo demonstrará o uso de “próximo()”Método para iterar sobre um objeto iterável. Para fazer isso, em primeiro lugar, criaremos um “variedade”E então invoca o“Símbolo.iterator ()”Método para retornar um objeto iterável:

const array = ['l', 'i', 'n', 'u', 'x'];
Deixe Arriterator = Array [Símbolo.iterator] ();

Invocando o “próximo()”Também retornará um objeto com“valor" e "feito" valores de propriedade:

console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());
console.log (Arriterator.próximo());

No final da sequência de iteração, o “feito"Propriedade do"próximo()”O método está definido como“falso”:

Exemplo: iterando através de iteráveis ​​com o loop em javascript
O símbolo.iterator () O método é chamado automaticamente pelo para… de loop. Se você quiser invocar manualmente, pode usar o “enquanto”LOOP para iterar sobre o objeto iterável especificado.

Por exemplo, no exemplo abaixo, usaremos o “enquanto”LOOP para iterar sobre os objetos iteráveis ​​retornados pelo“Símbolo.iterator ()”Método:

const array = ['l', 'i', 'n', 'u', 'x'];
Deixe Arriterator = Array [Símbolo.iterator] ();
deixe texto = ""
while (true)
const resultado = Arriterator.próximo();
if (resultado.feito) quebrar;
console.log ("valor:"+ resultado.valor + "feito:" + resultado.feito);

Aqui, a saída mostra o resultado retornado com “valor" e "feito”Propriedades do iterador:

Veja o diagrama a seguir para entender a relação entre o método iterables, Next () e iteradores em JavaScript:

Isso foi tudo sobre o uso básico de iteradores em JavaScript. Você pode explorar ainda mais de acordo com suas preferências.

Conclusão

Os iteradores em JavaScript são utilizados para loop sobre uma sequência de valores de objeto retornados pelo símbolo.Método iterator (). Esse processo também envolve a implementação do método Next () que retorna um objeto com o valor e as propriedades feitas, onde “valor”Representa o valor da sequência atual e“feito”Determina se a iteração é concluída ou não. Este artigo discutiu os iteradores JavaScript com a ajuda de exemplos adequados.