জাভাস্ক্রিপ্ট ফর ইন লুপ (JS For ... In Loop))

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

জাভাস্ক্রিপ্টে for...in লুপ একটি অবজেক্টের সকল enumerable প্রপার্টি (property) এর উপর ইটারেট (iterate) করতে ব্যবহৃত হয়। এটি বিশেষভাবে অবজেক্টের কী (key) গুলোতে লুপ চালানোর জন্য ডিজাইন করা হয়েছে, তবে এটি অ্যারের উপাদানগুলিতে ব্যবহার করা সম্ভব হলেও এটি সর্বদা উপযুক্ত নয়।

সিনট্যাক্স (Syntax)

for (let key in object) {
    // কোড ব্লক
}
  • key: প্রতিটি প্রপার্টির কী কে ধরে রাখবে।
  • object: যার প্রপার্টিগুলোতে লুপ চালানো হবে।

উদাহরণ (Example)

অবজেক্টের প্রপার্টি লুপ করা

const person = {
    name: "Alice",
    age: 25,
    city: "Dhaka"
};

for (let key in person) {
    console.log(`${key}: ${person[key]}`);
}

আউটপুট:

name: Alice
age: 25
city: Dhaka

অ্যারের উপাদানে for...in লুপ ব্যবহার করা

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

for (let index in fruits) {
    console.log(`Index ${index}: ${fruits[index]}`);
}

আউটপুট:

Index 0: Apple
Index 1: Banana
Index 2: Cherry

দ্রষ্টব্য: অ্যারের ক্ষেত্রে for...in লুপ ব্যবহার করার সময় এটি ইনডেক্স (index) গুলোকে ধরে রাখে, না যে সরাসরি উপাদানগুলোকে। তাই অ্যারের জন্য for...of লুপ অধিক উপযোগী।

ব্যবহার ক্ষেত্রে (Use Cases)

  • অবজেক্টের প্রপার্টি লুপ করা: অবজেক্টের সমস্ত প্রপার্টির উপর কাজ করতে for...in লুপ আদর্শ।
  • ডায়নামিক ডেটা প্রসেসিং: যখন অবজেক্টের প্রপার্টির সংখ্যা পূর্বনির্ধারিত না থাকে।

সীমাবদ্ধতা ও সতর্কতা (Limitations and Considerations)

  1. প্রটোটাইপ প্রোপার্টি: for...in লুপ অবজেক্টের প্রোটোটাইপ চেইনের প্রপার্টি গুলোও ইটারেট করে। যদি শুধুমাত্র অবজেক্টের নিজের প্রপার্টি লুপ করতে চান, তাহলে hasOwnProperty মেথড ব্যবহার করা উচিত।

    for (let key in person) {
        if (person.hasOwnProperty(key)) {
            console.log(`${key}: ${person[key]}`);
        }
    }
    
  2. অ্যারের জন্য উপযুক্ত নয়: অ্যারের উপাদান লুপ করার জন্য for...in লুপ ব্যবহার করলে অনাকাঙ্ক্ষিত ফলাফল আসতে পারে, যেমন অ্যারের ইনডেক্স ছাড়াও অন্যান্য প্রপার্টি লুপ করা। অ্যারের জন্য for...of বা সাধারণ for লুপ ব্যবহার করা ভালো।
  3. কী অর্ডার: for...in লুপে প্রপার্টির অর্ডার নিশ্চিত নয়। তাই অর্ডার গুরুত্বপূর্ণ ক্ষেত্রে এটি ব্যবহার করা উচিত নয়।

সেরা অনুশীলন (Best Practices)

  • অবজেক্টের প্রপার্টি লুপের জন্য ব্যবহার করুন: শুধুমাত্র অবজেক্টের প্রপার্টি লুপ করার জন্য for...in লুপ ব্যবহার করুন।
  • hasOwnProperty চেক করুন: প্রোটোটাইপ প্রপার্টি এড়াতে hasOwnProperty মেথড ব্যবহার করুন।
  • অ্যারের জন্য উপযুক্ত লুপ ব্যবহার করুন: অ্যারের জন্য for...of, forEach, বা সাধারণ for লুপ ব্যবহার করুন।

উদাহরণ: hasOwnProperty ব্যবহার

const person = {
    name: "Alice",
    age: 25,
    city: "Dhaka"
};

// প্রোটোটাইপ প্রপার্টি যোগ করা
Object.prototype.country = "Bangladesh";

for (let key in person) {
    if (person.hasOwnProperty(key)) {
        console.log(`${key}: ${person[key]}`);
    }
}

আউটপুট:

name: Alice
age: 25
city: Dhaka

এখানে, country প্রপার্টি লুপে অন্তর্ভুক্ত হয় না কারণ আমরা hasOwnProperty চেক করেছি।


সারাংশ

for...in লুপ জাভাস্ক্রিপ্টে অবজেক্টের প্রপার্টি গুলোতে লুপ চালানোর একটি সহজ এবং কার্যকরী উপায়। এটি অবজেক্টের সকল enumerable প্রপার্টি গুলো ইটারেট করে, তবে অ্যারের জন্য এটি সর্বদা উপযুক্ত নয়। প্রটোটাইপ প্রপার্টি এড়াতে hasOwnProperty চেক করা এবং উপযুক্ত লুপ স্ট্রাকচার নির্বাচন করা গুরুত্বপূর্ণ। for...in লুপ ব্যবহার করে কোডকে আরও সংগঠিত এবং কার্যকরী করা সম্ভব, বিশেষ করে অবজেক্ট ভিত্তিক ডেটা ম্যানিপুলেশনে।

common.content_added_by
টপ রেটেড অ্যাপ

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

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

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