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:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

Obținem iteratorul:

javascriptlet iter = func();

Să verificăm funcționarea iteratorului nostru:

javascriptconsole.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}
Задание 1

Creați un iterator, a cărui apel va returna numere de la 10 la zero.

Задание 2

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.

Задание 3

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.

Задание 4

Creați un iterator, a cărui apel va returna următoarea putere a lui doi.

Задание 5

Creați un iterator, a cărui apel va returna următorul număr Fibonacci.