Bucle în generatoare în JavaScript
În interiorul generatoarelor se pot utiliza
buclă. În acest caz, putem pune buclele
pe pauză folosind yield. Să
vedem un exemplu. Vom pune bucla
pe pauză la fiecare iterație:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Obținem iteratorul:
let iter = func();
Să verificăm funcționarea iteratorului nostru:
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}
Creați un iterator, a cărui apel
va returna numere de la 10
la zero.
Creați un generator care ca parametru va primi un număr. Fiecare apel al iteratorului să micșoreze numărul cu unu, până când se atinge zero.
Creați un generator care ca parametru va primi un număr. Fiecare apel al iteratorului să micșoreze numărul la jumătate și să returneze rezultatul. Și așa, până când numărul devine mai mic decât unu.
Creați un iterator, a cărui apel va returna următoarea putere a lui doi.
Creați un iterator, a cărui apel va returna următorul număr Fibonacci.