Цикли во генераторите во 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

Направете итератор, чие повикување ќе го враќа следниот број од Фибоначи.