Pętle w generatorach w JavaScript

Wewnątrz generatorów można używać pętli. Jednocześnie możemy stawiać pętle na pauzę za pomocą yield. Spójrzmy na przykładzie. Będziemy stawiać pętlę na pauzę w każdej iteracji:

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

Otrzymamy iterator:

javascriptlet iter = func();

Sprawdźmy działanie naszego 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

Stwórz iterator, każde wywołanie którego będzie zwracać liczby od 10 do zera.

Задание 2

Stwórz generator, który parametrem będzie przyjmować liczbę. Niech każde wywołanie iteratora zmniejsza liczbę o jeden, dopóki nie zostanie osiągnięte zero.

Задание 3

Stwórz generator, który parametrem będzie przyjmować liczbę. Niech każde wywołanie iteratora zmniejsza liczbę dwukrotnie i zwraca wynik. I tak, dopóki liczba nie stanie się mniejsza niż jeden.

Задание 4

Stwórz iterator, każde wywołanie którego będzie zwracać kolejną potęgę dwójki.

Задание 5

Stwórz iterator, każde wywołanie którego będzie zwracać kolejną liczbę Fibonacciego.