Petlje u generatorima u JavaScript-u

Unutar generatora je moguće koristiti petlje. Pritom možemo pauzirati petlje pomoću yield. Hajde da pogledamo na primeru. Pauziraćemo petlju svake iteracije:

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

Dobićemo iterator:

javascriptlet iter = func();

Proverimo rad našeg iteratora:

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

Kreirajte iterator čiji će svaki poziv vraćati brojeve od 10 do nule.

Задание 2

Napravite generator koji će kao parametar prihvatiti broj. Neka svaki poziv iteratora smanjuje broj za jedan, sve dok se ne dostigne nula.

Задание 3

Napravite generator koji će kao parametar prihvatiti broj. Neka svaki poziv iteratora smanji broj za pola i vrati rezultat. I tako, sve dok broj ne postane manji od jedan.

Задание 4

Napravite iterator čiji će svaki poziv vraćati sledeći stepen dvojke.

Задание 5

Napravite iterator čiji će svaki poziv vraćati sledeći Fibonačijev broj.