Cykly v generátoroch v JavaScripte

Vo vnútri generátorov je možné používať cykly. Zároveň môžeme cykly pozastaviť pomocou yield. Pozrime sa na príklad. Budeme cyklus pozastavovať v každej iterácii:

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

Získame iterátor:

javascriptlet iter = func();

Overíme fungovanie nášho iterátora:

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

Vytvorte iterátor, ktorého každé volanie vráti čísla od 10 do nuly.

Задание 2

Vytvorte generátor, ktorý ako parameter bude prijímať číslo. Nech každé volanie iterátora zníži číslo o jednu, kým nebude dosiahnutá nula.

Задание 3

Vytvorte generátor, ktorý ako parameter bude prijímať číslo. Nech každé volanie iterátora zníži číslo na polovicu a vráti výsledok. A tak ďalej, kým číslo nebude menšie ako jedna.

Задание 4

Vytvorte iterátor, ktorého každé volanie vráti ďalšiu mocninu dvojky.

Задание 5

Vytvorte iterátor, ktorého každé volanie vráti ďalšie Fibonacciho číslo.