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:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Saame iteraatori:
let iter = func();
Kontrollime oma iteraatori tööd:
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}
Looge iteraator, mille iga väljakutse
tagastab numbrid 10-st
nullini.
Tehke generaator, mis võtab parameetrina arvu. Olgu iga iteraatori väljakutse vähendab arvu ühe võrra, kuni jõutakse nullini.
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.
Tehke iteraator, mille iga väljakutse tagastab järgmise kahe astme.
Tehke iteraator, mille iga väljakutse tagastab järgmise Fibonacci arvu.