জাভাস্ক্রিপ্টে জেনারেটরে লুপ

জেনারেটরের ভিতরে লুপ ব্যবহার করা যায়। এ ক্ষেত্রে আমরা 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

একটি ইটারেটর তৈরি করুন, যার প্রতিটি কল পরবর্তী ফিবোনাচি সংখ্যা ফেরত দেবে।