Loopar i generatorer i JavaScript
Inuti generatorer kan man använda
loopar. Samtidigt kan vi pausa loopar
med yield. Låt oss
titta på ett exempel. Vi kommer att pausa
loopen varje iteration:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Vi får en iterator:
let iter = func();
Låt oss kontrollera hur vår iterator fungerar:
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}
Skapa en iterator, där varje anrop
skall returnera tal från 10
till noll.
Skapa en generator, som tar ett tal som parameter. Låt varje anrop av iteratorn minska talet med ett, tills noll uppnås.
Skapa en generator, som tar ett tal som parameter. Låt varje anrop av iteratorn minska talet till hälften och returnera resultatet. Och så vidare, tills talet blir mindre än ett.
Skapa en iterator, där varje anrop skall returnera nästa potens av två.
Skapa en iterator, där varje anrop skall returnera nästa Fibonacci-tal.