Generátory v JavaScriptu

Existují speciální funkce, pomocí kterých lze vytvářet vlastní iterátory. Takové funkce se nazývají generátory. Jména těchto funkcí musí začínat hvězdičkou:

javascriptfunction *func() {
  
}

Uvnitř generátorů se používá klíčové slovo yield, které určuje, co má iterátor vrátit při dalším volání. Jako příklad si udělejme, aby první volání vrátilo 1, druhé - 2, a třetí - 3:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

Generátor svým výsledkem vrací iterátor:

javascriptlet iter = func();

Pojďme zkontrolovat práci našeho iterátoru:

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

Vytvořte iterátor, jehož každé volání bude vracet čísla od 5 do 1.