Introdução
Neste laboratório, exploraremos o conceito de iteradores e geradores em JavaScript. Especificamente, focaremos na criação de um iterador "flat" (achatado) que pode iterar sobre arrays e conjuntos aninhados, e achatá-los em um único iterável. Isso nos permitirá acessar e manipular estruturas de dados aninhadas de forma eficiente e simplificada. Ao final do laboratório, você terá uma compreensão mais profunda de como os geradores e iteradores funcionam, e como eles podem ser aplicados para resolver problemas do mundo real.
Explicação do Iterador "Flat"
Para criar um gerador que itera sobre um iterável e achata iteráveis aninhados, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use recursão na função geradora.
- Use um loop
for...ofpara iterar sobre os valores do iterável fornecido. - Use
Symbol.iteratorpara verificar se cada valor é um iterável. - Se for, use a expressão
yield*para delegar recursivamente à mesma função geradora. - Caso contrário,
yieldo valor atual.
Aqui está um trecho de código de exemplo:
const flatIterator = function* (itr) {
for (let item of itr) {
if (item[Symbol.iterator]) yield* flatIterator(item);
else yield item;
}
};
const arr = [1, 2, [3, 4], [5, [6, [7], 8]], 9, new Set([10, 11])];
[...flatIterator(arr)]; // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
No exemplo, arr é um array de valores, incluindo arrays aninhados e um conjunto (set). A função geradora flatIterator é usada para achatar esses valores aninhados e retornar um array achatado.
Resumo
Parabéns! Você concluiu o laboratório do Iterador "Flat". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.