Ժեներատորները 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 թվերը: