Smyčky v generátorech v JavaScriptu
Uvnitř generátorů lze používat
smyčky. Zároveň můžeme smyčky
pozastavovat pomocí yield. Podívejme
se na příklad. Budeme smyčku
pozastavovat každou iteraci:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Získáme iterátor:
let iter = func();
Ověříme funkci našeho iterátoru:
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}
Vytvořte iterátor, jehož každé volání
bude vracet čísla od 10
k nule.
Vytvořte generátor, který parametrem bude přijímat číslo. Nechť každé volání iterátoru sníží číslo o jednu, dokud nebude dosaženo nuly.
Vytvořte generátor, který parametrem bude přijímat číslo. Nechť každé volání iterátoru sníží číslo na polovinu a vrátí výsledek. A tak dále, dokud číslo nestane menší než jedna.
Vytvořte iterátor, jehož každé volání bude vracet další mocninu dvojky.
Vytvořte iterátor, jehož každé volání bude vracet další Fibonacciho číslo.