JavaScriptda Generatorlarda Tsikllar

Generatorlar ichida tsikllardan foydalanish mumkin. Bunda biz tsikllarni yield yordamida pauza qilishimiz mumkin. Keling, buni misolda ko'ramiz. Har bir iteratsiyada tsiklni pauza qilamiz:

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

Iteratorni olamiz:

javascriptlet iter = func();

Iteratorimizning ishlashini tekshiramiz:

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

Iterator yarating, uning har bir chaqiruvi 10 dan nolgacha bo'lgan sonlarni qaytarsin.

Задание 2

Generator yarating, u parametr sifatida son qabul qilsin. Har bir iterator chaqiruvi nolga yetguncha sonni birga kamaytirsin.

Задание 3

Generator yarating, u parametr sifatida son qabul qilsin. Har bir iterator chaqiruvi sonni ikki baravar kamaytirsin va natijani qaytarsin. Son bittadan kichik bo'lguncha shunday qilsin.

Задание 4

Iterator yarating, uning har bir chaqiruvi ikkining keyingi darajasini qaytarsin.

Задание 5

Iterator yarating, uning har bir chaqiruvi keyingi Fibonachchi sonini qaytarsin.