Lussen in generatoren in JavaScript
Binnen generatoren kunnen
lussen gebruikt worden.
Tegelijkertijd kunnen we lussen
pauzeren met yield. Laten we
een voorbeeld bekijken. We zetten de
lus elke iteratie op pauze:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
We krijgen een iterator:
let iter = func();
Laten we de werking van onze iterator controleren:
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}
Maak een iterator aan, waarvan elke aanroep
getallen van 10
tot nul teruggeeft.
Maak een generator die een getal als parameter accepteert. Laat elke aanroep van de iterator het getal met één verminderen, totdat nul is bereikt.
Maak een generator die een getal als parameter accepteert. Laat elke aanroep van de iterator het getal halveren en het resultaat teruggeven. En zo verder, totdat het getal kleiner wordt dan één.
Maak een iterator, waarvan elke aanroep de volgende macht van twee teruggeeft.
Maak een iterator, waarvan elke aanroep het volgende Fibonacci-getal teruggeeft.