Cicli nei generatori in JavaScript

All'interno dei generatori è possibile utilizzare cicli. In questo caso possiamo mettere in pausa i cicli utilizzando yield. Diamo un'occhiata a un esempio. Metteremo in pausa il ciclo a ogni iterazione:

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

Otteniamo un iteratore:

javascriptlet iter = func();

Verifichiamo il funzionamento del nostro iteratore:

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

Create un iteratore, ogni cui chiamata restituirà numeri da 10 a zero.

Задание 2

Create un generatore che accetti un numero come parametro. Ogni chiamata dell'iteratore diminuisca il numero di uno, finché non viene raggiunto zero.

Задание 3

Create un generatore che accetti un numero come parametro. Ogni chiamata dell'iteratore diminuisca il numero della metà e restituisca il risultato. E così, finché il numero non diventa minore di uno.

Задание 4

Create un iteratore, ogni cui chiamata restituirà la successiva potenza di due.

Задание 5

Create un iteratore, ogni cui chiamata restituirà il successivo numero di Fibonacci.