Цыклы ў генератарах у JavaScript

Унутры генератараў можна выкарыстоўваць цыклы. Пры гэтым мы можам ставіць цыклы на паўзу з дапамогай yield. Давайце паглядзім на прыкладзе. Будзем ставіць цыкл на паўзу кожную ітэрацыю:

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

Атрымаем ітэратар:

javascriptlet iter = func();

Праверым працу нашага ітэратара:

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

Стварыце ітэратар, кожны вызаў якога будзе вяртаць лікі ад 10 да нуля.

Задание 2

Зрабіце генератар, які параметрам будзе прымаць лік. Хай кожны вызаў ітэратара памяншае лік на адзінку, пакуль не будзе дасягнуты нуль.

Задание 3

Зрабіце генератар, які параметрам будзе прымаць лік. Хай кожны вызаў ітэратара памяншае лік у два разы і вяртае вынік. І так, пакуль лік не стане менш за адзінку.

Задание 4

Зрабіце ітэратар, кожны вызаў якога будзе вяртаць наступную ступень двойкі.

Задание 5

Зрабіце ітэратар, кожны вызаў якога будзе вяртаць наступны лік Фібаначы.