ციკლები გენერატორებში JavaScript-ში
გენერატორების შიგნით შესაძლებელია ციკლების გამოყენება.
ამ შემთხვევაში ჩვენ შეგვიძლია ციკლების
პაუზის დაყენება 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-დან
ნულამდე.
შექმენით გენერატორი, რომელიც პარამეტრად მიიღებს რიცხვს. ნება მიეცით ყოველმა იტერატორის გამოძახებამ შეამციროს რიცხვი ერთით, სანამ არ მიიღწევა ნული.
შექმენით გენერატორი, რომელიც პარამეტრად მიიღებს რიცხვს. ნება მიეცით ყოველმა იტერატორის გამოძახებამ შეამციროს რიცხვი ორჯერ და დააბრუნოს შედეგი. და ასე, სანამ რიცხვი არ გახდება ერთზე ნაკლები.
შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს ორის შემდეგ ხარისხს.
შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს ფიბონაჩის შემდეგ რიცხვს.