ციკლები გენერატორებში JavaScript-ში

გენერატორების შიგნით შესაძლებელია ციკლების გამოყენება. ამ შემთხვევაში ჩვენ შეგვიძლია ციკლების პაუზის დაყენება yield-ის საშუალებით. მოდით ნახოთ მაგალითზე. ჩვენ დავაპაუზებთ ციკლს ყოველ იტერაციაზე:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

მივიღებთ იტერატორს:

javascriptlet iter = func();

შევამოწმოთ ჩვენი იტერატორის მუშაობა:

javascriptconsole.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}
Задание 1

შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს რიცხვებს 10-დან ნულამდე.

Задание 2

შექმენით გენერატორი, რომელიც პარამეტრად მიიღებს რიცხვს. ნება მიეცით ყოველმა იტერატორის გამოძახებამ შეამციროს რიცხვი ერთით, სანამ არ მიიღწევა ნული.

Задание 3

შექმენით გენერატორი, რომელიც პარამეტრად მიიღებს რიცხვს. ნება მიეცით ყოველმა იტერატორის გამოძახებამ შეამციროს რიცხვი ორჯერ და დააბრუნოს შედეგი. და ასე, სანამ რიცხვი არ გახდება ერთზე ნაკლები.

Задание 4

შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს ორის შემდეგ ხარისხს.

Задание 5

შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს ფიბონაჩის შემდეგ რიცხვს.