Introdução
Neste laboratório, exploraremos como criar uma função geradora em JavaScript que produz novos valores enquanto uma determinada condição for atendida. Usaremos a função generateWhile, que recebe um valor inicial (seed value), uma função de condição e uma função next para calcular o próximo valor a partir do valor atual e do próximo valor inicial. Ao final deste laboratório, você será capaz de criar geradores personalizados que podem ser usados para produzir valores com base em condições e regras específicas.
Gerador que Produz Valores Enquanto uma Condição for Verdadeira
Para começar a codificar, abra o Terminal/SSH e digite node. Isso criará um gerador que continua produzindo novos valores enquanto a condição fornecida for atendida.
O gerador é inicializado com um valor inicial (seed), que é usado para inicializar o val atual. Um loop while é então usado para iterar enquanto a função condition, chamada com o val atual, retorna true.
A palavra-chave yield é usada para retornar o val atual e, opcionalmente, receber um novo valor inicial, nextSeed. A função next é usada para calcular o próximo valor a partir do val atual e do nextSeed.
const generateWhile = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
Para usar o gerador, chame-o com as funções seed, condition e next. Por exemplo, chamar [...generateWhile(1, v => v <= 5, v => ++v)] retornará [1, 2, 3, 4, 5].
Resumo
Parabéns! Você concluiu o laboratório "Gerar Enquanto a Condição for Atendida". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.