Loops em Geradores em JavaScript
Dentro de geradores, é possível utilizar
loops. Ao mesmo tempo, podemos pausar loops
usando yield. Vamos
ver um exemplo. Vamos pausar
o loop a cada iteração:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Obtemos um iterador:
let iter = func();
Vamos verificar o funcionamento do nosso iterador:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Crie um iterador, onde cada chamada
retorne números de 10
até zero.
Faça um gerador que aceite um número como parâmetro. Que cada chamada do iterador decremente o número em um, até que zero seja alcançado.
Faça um gerador que aceite um número como parâmetro. Que cada chamada do iterador reduza o número pela metade e retorne o resultado. E assim, até que o número se torne menor que um.
Faça um iterador, onde cada chamada retorne a próxima potência de dois.
Faça um iterador, onde cada chamada retorne o próximo número de Fibonacci.