জাভাস্ক্রিপ্টে for...in
লুপ একটি অবজেক্টের সকল enumerable প্রপার্টি (property) এর উপর ইটারেট (iterate) করতে ব্যবহৃত হয়। এটি বিশেষভাবে অবজেক্টের কী (key) গুলোতে লুপ চালানোর জন্য ডিজাইন করা হয়েছে, তবে এটি অ্যারের উপাদানগুলিতে ব্যবহার করা সম্ভব হলেও এটি সর্বদা উপযুক্ত নয়।
for (let key in object) {
// কোড ব্লক
}
key
: প্রতিটি প্রপার্টির কী কে ধরে রাখবে।object
: যার প্রপার্টিগুলোতে লুপ চালানো হবে।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
লুপ অধিক উপযোগী।
for...in
লুপ আদর্শ।প্রটোটাইপ প্রোপার্টি: for...in
লুপ অবজেক্টের প্রোটোটাইপ চেইনের প্রপার্টি গুলোও ইটারেট করে। যদি শুধুমাত্র অবজেক্টের নিজের প্রপার্টি লুপ করতে চান, তাহলে hasOwnProperty
মেথড ব্যবহার করা উচিত।
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(`${key}: ${person[key]}`);
}
}
for...in
লুপ ব্যবহার করলে অনাকাঙ্ক্ষিত ফলাফল আসতে পারে, যেমন অ্যারের ইনডেক্স ছাড়াও অন্যান্য প্রপার্টি লুপ করা। অ্যারের জন্য for...of
বা সাধারণ for
লুপ ব্যবহার করা ভালো।for...in
লুপে প্রপার্টির অর্ডার নিশ্চিত নয়। তাই অর্ডার গুরুত্বপূর্ণ ক্ষেত্রে এটি ব্যবহার করা উচিত নয়।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.read_more