JavaScript-də Generator Funksiyalarında Dövrlər

Generatorların daxilində dövrlərdən istifadə etmək olar. Bu zaman biz yield vasitəsilə dövrləri dayandıra bilərik. Gəlin bir nümunəyə baxaq. Hər iterasiyada dövrü dayandıraq:

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

İteratoru əldə edək:

javascriptlet iter = func();

İteratorumuzun işini yoxlayaq:

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-dan sıfıra qədər ədədləri qaytaran iterator yaradın.

Задание 2

Parametr kimi ədəd qəbul edən generator hazırlayın. İteratorun hər çağırılışı ədədi bir vahid azaltsın, sıfıra çatana qədər.

Задание 3

Parametr kimi ədəd qəbul edən generator hazırlayın. İteratorun hər çağırılışı ədədi iki dəfə azaltsın və nəticəni qaytarsın. Və bu, ədəd birdən kiçik olana qədər davam etsin.

Задание 4

Hər çağırılışında növbəti iki qüvvətini qaytaran iterator hazırlayın.

Задание 5

Hər çağırılışında növbəti Fibonaççi ədədini qaytaran iterator hazırlayın.