JavaScript даги Генераторлар

Ўз итераторларингизни яратиш учун ишлатиладиган махсус функциялар мавжуд. Бундай функциялар генераторлар деб аталади. Бундай функцияларнинг номлари юлдузча билан бошланиши керак:

javascriptfunction *func() {
  
}

Генераторлар ичида итератор кейинги чақириқда нима қайтариши кераклигини кўрсатувчи yield калит сўзи ишлатилади. Мисол учун, биринчи чақириқ 1 ни, иккинчи чақириқ 2 ни, учинчи чақириқ эса 3 ни қайтарсин:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

Генератор ўзининг натижаси сифатида итераторни қайтаради:

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

Ҳар бир чақириғи 5 дан 1 гача бўлган сонларни қайтарадиган итератор яратинг.