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

Әрбір шақыруы келесі Фибоначчи санын қайтаратын итератор жасаңыз.