JavaScript-da Generatorlar
Iteratorlarni yaratish uchun ishlatiladigan maxsus funksiyalar mavjud. Bunday funksiyalar generatorlar deb ataladi. Bunday funksiyalar nomi yulduzcha bilan boshlanishi kerak:
function *func() {
}
Generatorlar ichida yield kalit so'zi ishlatiladi,
u iterator keyingi chaqiruvda nima qaytarishini
ko'rsatadi. Misol uchun
keling, birinchi chaqiruv 1 ni qaytarsin,
ikkinchi - 2,
uchinchi - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator o'z natijasida iteratorni qaytaradi:
let iter = func();
Keling, iteratorimizning ishlashini tekshiramiz:
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}
Har bir chaqiruvida 5 dan 1 gacha bo'lgan
sonlarni qaytaradigan iterator yarating.