JavaScript даги Генераторлар
Ўз итераторларингизни яратиш учун ишлатиладиган махсус функциялар мавжуд. Бундай функциялар генераторлар деб аталади. Бундай функцияларнинг номлари юлдузча билан бошланиши керак:
function *func() {
}
Генераторлар ичида итератор кейинги
чақириқда нима қайтариши кераклигини
кўрсатувчи yield калит сўзи ишлатилади.
Мисол учун, биринчи чақириқ 1 ни,
иккинчи чақириқ 2 ни,
учинчи чақириқ эса 3 ни қайтарсин:
function *func() {
yield 1;
yield 2;
yield 3;
}
Генератор ўзининг натижаси сифатида итераторни қайтаради:
let iter = func();
Келинг, итераторимизнинг ишлашини текширамиз:
console.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}
Ҳар бир чақириғи 5 дан
1 гача бўлган сонларни қайтарадиган
итератор яратинг.