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:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

Gautume iteratoriu:

javascriptlet iter = func();

Patikrinkime mūsų iteratoriaus veikimą:

javascriptconsole.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}
Задание 1

Sukurkite iteratoriu, kurio kiekvienas iškvietimas grąžins skaičius nuo 10 iki nulio.

Задание 2

Sukurkite generatoriu, kuris parametru priims skaičių. Tegul kiekvienas iteratoriaus iškvietimas sumažina skaičių vienetu, kol nebus pasiektas nulis.

Задание 3

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ą.

Задание 4

Sukurkite iteratoriu, kurio kiekvienas iškvietimas grąžins kitą dviejų laipsnį.

Задание 5

Sukurkite iteratoriu, kurio kiekvienas iškvietimas grąžins kitą Fibonačio skaičių.