Løkker i generatorer i JavaScript
Inde i generatorer kan man bruge
løkker. Samtidig kan vi sætte løkker
pause med yield. Lad os
se på et eksempel. Vi sætter
løkken på pause hver iteration:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Vi får en iterator:
let iter = func();
Lad os tjekke vores iterators funktion:
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}
Opret en iterator, hvor hvert kald
vil returnere tal fra 10
til nul.
Lav en generator, der som parameter tager et tal. Lad hvert kald af iteratoren reducere tallet med en, indtil nul er nået.
Lav en generator, der som parameter vil tage et tal. Lad hvert kald af iteratoren reducere tallet til halvdelen og returnere resultatet. Og sådan fortsættes, indtil tallet bliver mindre end en.
Lav en iterator, hvor hvert kald vil returnere den næste potens af to.
Lav en iterator, hvor hvert kald vil returnere det næste Fibonacci-tal.