Ցիկլերը ՋավաՍկրիպտի գեներատորներում
Գեներատորների ներսում կարելի է օգտագործել
ցիկլեր: Այս դեպքում մենք կարող ենք դադարեցնել ցիկլերը
օգտագործելով yield: Եկեք
նայենք օրինակին: Մենք կդադարեցնենք
ցիկլը ամեն իտերացիայի ժամանակ:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Ստանում ենք իտերատոր:
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}
Ստեղծեք իտերատոր, որի ամեն կանչ
կվերադարձնի թվեր 10-ից
մինչև զրո:
Ստեղծեք գեներատոր, որն իր պարամետրով կընդունի թիվ: Թող իտերատորի ամեն կանչ նվազեցնի թիվը մեկով, մինչև չհասնի զրոյի:
Ստեղծեք գեներատոր, որն իր պարամետրով կընդունի թիվ: Թող իտերատորի ամեն կանչ նվազեցնի թիվը երկու անգամ և վերադարձնի արդյունքը: Եվ այդպես, մինչև թիվը դառնա մեկից փոքր:
Ստեղծեք իտերատոր, որի ամեն կանչ կվերադարձնի երկուսի հաջորդ աստիճանը:
Ստեղծեք իտերատոր, որի ամեն կանչ կվերադարձնի Ֆիբոնաչիի հաջորդ թիվը: