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

Ҳар чақириғи кейинги Фибоначчи sonini қайтарадиган итератор яратинг.