Петље у генераторима у 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

Направите итератор чији ће сваки позив враћати следећи Фибоначијев број (број из Фибоначијевог низа).