Boucles dans les générateurs en JavaScript

À l'intérieur des générateurs, il est possible d'utiliser des boucles. En même temps, nous pouvons mettre les boucles en pause à l'aide de yield. Regardons un exemple. Nous mettrons la boucle en pause à chaque itération :

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

Nous obtiendrons un itérateur :

javascriptlet iter = func();

Vérifions le fonctionnement de notre itérateur :

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

Créez un itérateur dont chaque appel retournera les nombres de 10 à zéro.

Задание 2

Créez un générateur qui prendra un nombre comme paramètre. Que chaque appel de l'itérateur diminue le nombre de un, jusqu'à ce que zéro soit atteint.

Задание 3

Créez un générateur qui prendra un nombre comme paramètre. Que chaque appel de l'itérateur divise le nombre par deux et retourne le résultat. Et ainsi de suite, jusqu'à ce que le nombre devienne inférieur à un.

Задание 4

Créez un itérateur dont chaque appel retournera la puissance de deux suivante.

Задание 5

Créez un itérateur dont chaque appel retournera le nombre de Fibonacci suivant.