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:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Otteniamo un iteratore:
let iter = func();
Verifichiamo il funzionamento del nostro iteratore:
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}
Create un iteratore, ogni cui chiamata
restituirà numeri da 10
a zero.
Create un generatore che accetti un numero come parametro. Ogni chiamata dell'iteratore diminuisca il numero di uno, finché non viene raggiunto zero.
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.
Create un iteratore, ogni cui chiamata restituirà la successiva potenza di due.
Create un iteratore, ogni cui chiamata restituirà il successivo numero di Fibonacci.