Iterables ES6 (ECMAScript 2015) এর একটি গুরুত্বপূর্ণ কনসেপ্ট, যা একটি অবজেক্টকে রিপিটেবল বা লুপ করার উপযোগী করে তোলে। কোনো অবজেক্ট যদি iterable হয়, তাহলে আপনি সেই অবজেক্টের উপাদানগুলোকে একে একে এক্সেস করতে পারেন, সাধারণত for...of লুপ ব্যবহার করে।
Iterables কি?
Iterable হলো এমন একটি অবজেক্ট, যার মধ্যে Symbol.iterator মেথড থাকে। এই মেথডটি অবজেক্টের উপাদানগুলোর একটি সিরিজ (যেমন, অ্যারে, স্ট্রিং, ম্যাপ, সেট ইত্যাদি) রিটার্ন করে, যা next() মেথডের মাধ্যমে একে একে এক্সেস করা যায়।
Symbol.iteratorএকটি বিল্ট-ইন সিম্বল, যা এই অবজেক্টটিকে iterable হিসেবে চিহ্নিত করে এবং তা থেকে উপাদান এক্সট্র্যাক্ট করতে সক্ষম করে।
Iterables কিভাবে কাজ করে?
Symbol.iterator মেথড: যে কোনো অবজেক্টকে iterable বানানোর জন্য, তাকে
Symbol.iteratorমেথড ইমপ্লিমেন্ট করতে হবে। এই মেথডটি একটি ইটারেটর রিটার্ন করে, যা প্রতিবারnext()মেথড কল করার মাধ্যমে অবজেক্টের পরবর্তী ভ্যালু প্রদান করে।উদাহরণ:
const arr = [1, 2, 3]; const iterator = arr[Symbol.iterator](); // iterator অবজেক্ট পাওয়া যাচ্ছে console.log(iterator.next()); // { value: 1, done: false } console.log(iterator.next()); // { value: 2, done: false } console.log(iterator.next()); // { value: 3, done: false } console.log(iterator.next()); // { value: undefined, done: true }এখানে,
arr[Symbol.iterator]()একটি ইটারেটর অবজেক্ট রিটার্ন করেছে, এবং এর মধ্যেnext()মেথড ব্যবহার করে অ্যারের উপাদানগুলো একে একে পাওয়া গেছে।for...ofলুপ ব্যবহার করা:for...ofলুপ ES6 এর একটি সুবিধাজনক লুপ স্ট্রাকচার, যা iterable অবজেক্টের প্রতিটি উপাদানকে এক এক করে এক্সেস করতে ব্যবহৃত হয়।উদাহরণ:
const arr = [1, 2, 3]; for (let value of arr) { console.log(value); // 1, 2, 3 }এখানে,
for...ofলুপ ব্যবহার করেarrঅ্যারের সব উপাদানকে এক এক করে প্রিন্ট করা হয়েছে।
Iterables এর উদাহরণ
Array (অ্যারে): অ্যারে ES6 এর একটি iterable অবজেক্ট। আপনি
for...ofলুপ ব্যবহার করে অ্যারের প্রতিটি উপাদান একে একে এক্সেস করতে পারেন।উদাহরণ:
const numbers = [10, 20, 30]; for (let num of numbers) { console.log(num); // 10, 20, 30 }String (স্ট্রিং): স্ট্রিংও একটি iterable অবজেক্ট। আপনি স্ট্রিং এর প্রতিটি চরিত্র একে একে এক্সেস করতে পারেন।
উদাহরণ:
const greeting = "Hello"; for (let char of greeting) { console.log(char); // H, e, l, l, o }Map এবং Set: ES6 এ Map এবং Set অবজেক্টগুলোকেও iterable হিসেবে তৈরি করা হয়েছে। আপনি এই অবজেক্টগুলোর উপাদানগুলোকেও
for...ofলুপ ব্যবহার করে এক্সেস করতে পারেন।Map এর উদাহরণ:
const map = new Map([ ["name", "Alice"], ["age", 30] ]); for (let [key, value] of map) { console.log(key, value); // name Alice, age 30 }Set এর উদাহরণ:
const set = new Set([1, 2, 3]); for (let value of set) { console.log(value); // 1, 2, 3 }
Iterables এর সুবিধা
- কোডের সংক্ষিপ্ততা এবং পরিষ্কারতা:
for...ofলুপ এবং অন্যান্য ইটারেটিভ পদ্ধতি ব্যবহার করে, আপনি iterable অবজেক্টের উপাদানগুলো সহজেই এক্সেস করতে পারেন, যা কোডের পাঠযোগ্যতা এবং সংক্ষিপ্ততা বাড়ায়। - পুনঃব্যবহারযোগ্যতা: Iterables ব্যবহার করে আপনি কোডকে আরও মডুলার ও পুনঃব্যবহারযোগ্য করে তুলতে পারেন। আপনি একই মেথড বা লজিক ব্যবহার করে বিভিন্ন ধরনের iterable অবজেক্টে কাজ করতে পারবেন।
- অ্যাসিঙ্ক্রোনাস কোড এবং স্ট্রিম প্রোসেসিং: Iterables অ্যাসিঙ্ক্রোনাস কোড বা স্ট্রিম প্রোসেসিংএও সাহায্য করতে পারে, কারণ আপনি এক এক করে ডেটা প্রসেস করতে পারেন, যেমন ওয়েব রিকোয়েস্টের ফলাফল বা ফাইল ডেটা।
Conclusion
Iterables ES6 এর একটি শক্তিশালী ফিচার যা কোডকে আরও সহজ এবং সংগঠিত করতে সাহায্য করে। এটি অবজেক্টগুলোর উপাদানগুলোকে একে একে এক্সেস করার জন্য একটি স্ট্যান্ডার্ড পদ্ধতি প্রদান করে, যা কোডের রিডেবিলিটি এবং ডিবাগিং সহজ করে তোলে। for...of লুপের মতো শক্তিশালী টুল ব্যবহার করে আপনি ইটারেবল অবজেক্টের সাথে কাজ করতে পারবেন, যা আপনার কোডের কার্যকারিতা এবং পুনঃব্যবহারযোগ্যতা বাড়ায়।