জাভাস্ক্রিপ্টে ইটারেবল (Iterable) হল এমন একটি অবজেক্ট যা ইটারেটর প্রোটোকল অনুসরণ করে এবং এর উপাদানগুলোর মধ্যে একে একে প্রবাহিত হতে পারে। ইটারেবল অবজেক্টগুলোর মধ্যে অ্যারে, স্ট্রিং, ম্যাপ, সেট ইত্যাদি অন্তর্ভুক্ত। ইটারেবল অবজেক্টের মূল বৈশিষ্ট্য হল তারা Symbol.iterator
প্রোপার্টি ধারণ করে, যা একটি ইটারেটর অবজেক্ট রিটার্ন করে।
ইটারেবল অবজেক্টগুলো এমন অবজেক্ট যা ইটারেটর প্রোটোকল অনুসরণ করে। এটি মানে হল, এগুলো একটি ইটারেটর অবজেক্ট প্রদান করে যা পরবর্তীতে তাদের উপাদানগুলোর মধ্যে নেভিগেট করতে ব্যবহৃত হয়।
ইটারেটর হল একটি অবজেক্ট যা next()
মেথড ধারণ করে। next()
মেথডটি একটি অবজেক্ট রিটার্ন করে যার মধ্যে value
এবং done
প্রপার্টি থাকে। value
হল বর্তমান উপাদান এবং done
নির্দেশ করে যে ইটারেশন সম্পন্ন হয়েছে কিনা।
const iterable = [1, 2, 3];
const iterator = iterable[Symbol.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 }
অ্যারে জাভাস্ক্রিপ্টের অন্যতম প্রধান ইটারেবল অবজেক্ট।
const fruits = ["Apple", "Banana", "Cherry"];
for (const fruit of fruits) {
console.log(fruit);
}
// আউটপুট:
// Apple
// Banana
// Cherry
স্ট্রিংও একটি ইটারেবল অবজেক্ট, যা প্রতিটি ক্যারেক্টারে ইটারেশন করতে দেয়।
const greeting = "Hello";
for (const char of greeting) {
console.log(char);
}
// আউটপুট:
// H
// e
// l
// l
// o
ম্যাপ এবং সেটও ইটারেবল অবজেক্ট।
const map = new Map();
map.set('a', 1);
map.set('b', 2);
for (const [key, value] of map) {
console.log(`${key}: ${value}`);
}
// আউটপুট:
// a: 1
// b: 2
const set = new Set([1, 2, 3]);
for (const num of set) {
console.log(num);
}
// আউটপুট:
// 1
// 2
// 3
জাভাস্ক্রিপ্টে আপনি নিজস্ব ইটারেবল অবজেক্ট তৈরি করতে পারেন Symbol.iterator
মেথড ব্যবহার করে।
const myIterable = {
data: [10, 20, 30],
[Symbol.iterator]() {
let index = 0;
const data = this.data;
return {
next() {
if (index < data.length) {
return { value: data[index++], done: false };
} else {
return { value: undefined, done: true };
}
}
};
}
};
for (const num of myIterable) {
console.log(num);
}
// আউটপুট:
// 10
// 20
// 30
...
)স্প্রেড অপারেটর ইটারেবল অবজেক্টের উপাদানগুলোকে আলাদা করে নেয়।
const numbers = [1, 2, 3];
const moreNumbers = [...numbers, 4, 5];
console.log(moreNumbers); // [1, 2, 3, 4, 5]
ডেসট্রাকচারিং ইটারেবল অবজেক্ট থেকে উপাদানগুলোকে আলাদা ভেরিয়েবলে বরাদ্দ করতে ব্যবহার করা হয়।
const [first, second, third] = [10, 20, 30];
console.log(first); // 10
console.log(second); // 20
console.log(third); // 30
for...of
লুপfor...of
লুপ ইটারেবল অবজেক্টের প্রতিটি উপাদানে একে একে অ্যাক্সেস করতে ব্যবহৃত হয়।
const iterable = [100, 200, 300];
for (const value of iterable) {
console.log(value);
}
// আউটপুট:
// 100
// 200
// 300
Array.from()
এবং Array.of()
Array.from()
Array.from()
মেথড ইটারেবল অবজেক্টকে অ্যারেতে রূপান্তর করে।
const str = "Hello";
const chars = Array.from(str);
console.log(chars); // ['H', 'e', 'l', 'l', 'o']
Array.of()
Array.of()
মেথড একটি নির্দিষ্ট সংখ্যক উপাদানের সাথে একটি নতুন অ্যারে তৈরি করে।
const numbers = Array.of(1, 2, 3);
console.log(numbers); // [1, 2, 3]
জাভাস্ক্রিপ্টে ইটারেবল অবজেক্টগুলো এমন অবজেক্ট যা ইটারেটর প্রোটোকল অনুসরণ করে এবং তাদের উপাদানগুলোর মধ্যে সহজেই নেভিগেট করতে দেয়। অ্যারে, স্ট্রিং, ম্যাপ, সেট ইত্যাদি ইটারেবল অবজেক্টের উদাহরণ। ইটারেবল অবজেক্টের মাধ্যমে for...of
লুপ, স্প্রেড অপারেটর, ডেসট্রাকচারিং ইত্যাদি সুবিধাজনক পদ্ধতিতে কাজ করা যায়। এছাড়াও, কাস্টম ইটারেবল অবজেক্ট তৈরি করে আপনি নিজস্ব ডেটা স্ট্রাকচারকে ইটারেবল করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠনকে উন্নত করে। ইটারেবল অবজেক্টের ধারণা জাভাস্ক্রিপ্টে আরও কার্যকরী এবং নমনীয় কোড লেখার জন্য অপরিহার্য।
common.read_more