জাভাস্ক্রিপ্ট ইটারেবল (JS Iterable)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট কন্ট্রোল স্টেটমেন্ট (JS Control Statement) |
407
407

জাভাস্ক্রিপ্টে ইটারেবল (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 }

ইটারেবল অবজেক্টের উদাহরণ

অ্যারে (Array)

অ্যারে জাভাস্ক্রিপ্টের অন্যতম প্রধান ইটারেবল অবজেক্ট।

const fruits = ["Apple", "Banana", "Cherry"];

for (const fruit of fruits) {
    console.log(fruit);
}
// আউটপুট:
// Apple
// Banana
// Cherry

স্ট্রিং (String)

স্ট্রিংও একটি ইটারেবল অবজেক্ট, যা প্রতিটি ক্যারেক্টারে ইটারেশন করতে দেয়।

const greeting = "Hello";

for (const char of greeting) {
    console.log(char);
}
// আউটপুট:
// H
// e
// l
// l
// o

ম্যাপ (Map) এবং সেট (Set)

ম্যাপ এবং সেটও ইটারেবল অবজেক্ট।

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]

ডেসট্রাকচারিং (Destructuring)

ডেসট্রাকচারিং ইটারেবল অবজেক্ট থেকে উপাদানগুলোকে আলাদা ভেরিয়েবলে বরাদ্দ করতে ব্যবহার করা হয়।

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.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion