Løkker i generatorer i JavaScript
Inne i generatorer kan vi bruke
løkker. Samtidig kan vi sette løkker
på pause ved hjelp av yield. La oss
se på et eksempel. Vi setter
løkken på pause ved hver iterasjon:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Vi får en iterator:
let iter = func();
La oss sjekke hvordan iteratoren vår fungerer:
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}
Lag en iterator hvor hvert kall
returnerer tall fra 10
ned til null.
Lag en generator som tar imot et tall som parameter. La hvert kall på iteratoren redusere tallet med én, inntil null er nådd.
Lag en generator som tar imot et tall som parameter. La hvert kall på iteratoren redusere tallet til halvparten og returnere resultatet. Fortsett til tallet blir mindre enn én.
Lag en iterator hvor hvert kall returnerer neste potens av to.
Lag en iterator hvor hvert kall returnerer neste Fibonacci-tall.