Ciklai generatoriuose JavaScript
Generatoriuose galima naudoti
ciklus. Tuo pačiu galime sustabdyti ciklus
naudojant yield. Pažiūrėkime
pavyzdžiu. Sustabdysime
ciklą kiekvienos iteracijos metu:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Gautume iteratoriu:
let iter = func();
Patikrinkime mūsų iteratoriaus veikimą:
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}
Sukurkite iteratoriu, kurio kiekvienas iškvietimas
grąžins skaičius nuo 10
iki nulio.
Sukurkite generatoriu, kuris parametru priims skaičių. Tegul kiekvienas iteratoriaus iškvietimas sumažina skaičių vienetu, kol nebus pasiektas nulis.
Sukurkite generatoriu, kuris parametru priims skaičių. Tegul kiekvienas iteratoriaus iškvietimas sumažina skaičių perpus ir grąžina rezultatą. Ir taip, kol skaičius netaps mažesnis už vienetą.
Sukurkite iteratoriu, kurio kiekvienas iškvietimas grąžins kitą dviejų laipsnį.
Sukurkite iteratoriu, kurio kiekvienas iškvietimas grąžins kitą Fibonačio skaičių.