Tsüklid generaatorites JavaScriptis

Generaatorite sees saab kasutada tsükleid. Samas võime tsükleid peatada kasutades yield. Vaatame seda näitega. Peatame tsükli igai iteratsioonil:

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

Saame iteraatori:

javascriptlet iter = func();

Kontrollime oma iteraatori tööd:

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

Looge iteraator, mille iga väljakutse tagastab numbrid 10-st nullini.

Задание 2

Tehke generaator, mis võtab parameetrina arvu. Olgu iga iteraatori väljakutse vähendab arvu ühe võrra, kuni jõutakse nullini.

Задание 3

Tehke generaator, mis võtab parameetrina arvu. Olgu iga iteraatori väljakutse vähendab arvu poole võrra ja tagastab tulemuse. Ja nii, kuni arv ei muutu väiksemaks kui üks.

Задание 4

Tehke iteraator, mille iga väljakutse tagastab järgmise kahe astme.

Задание 5

Tehke iteraator, mille iga väljakutse tagastab järgmise Fibonacci arvu.