ব্র্যাকেট নোটেশন এবং কম্পিউটেড প্রপার্টি নাম ব্যবহার করে ডাইনামিক প্রপার্টি
জাভাস্ক্রিপ্টে অবজেক্ট প্রপার্টি তৈরি করার দুটি উপায় রয়েছে: ডট নোটেশন (obj.prop) এবং ব্র্যাকেট নোটেশন (obj['prop'])। ভেরিয়েবল থেকে প্রপার্টি নাম নেওয়ার জন্য ব্র্যাকেট নোটেশন বাধ্যতামূলক।
পদ্ধতি ১: ব্র্যাকেট নোটেশন (ES5+)
const obj = {a: 'foo'};
const prop = 'bar';
// ভেরিয়েবল 'prop' এর মান 'bar' ব্যবহার করে প্রপার্টি তৈরি
obj[prop] = 'baz';
console.log(obj); // { a: 'foo', bar: 'baz' }
পদ্ধতি ২: কম্পিউটেড প্রপার্টি নাম (ES6+)
ES6-এ অবজেক্ট লিটারেলের ভিতরেই ব্র্যাকেট ব্যবহার করে ডাইনামিক কী তৈরি করা যায়। এটি আরও ক্লিন এবং পঠনযোগ্য।
const prop = 'bar';
const obj = {
a: 'foo',
[prop]: 'baz' // ভেরিয়েবল prop-এর মান 'bar' কী হিসেবে ব্যবহৃত হবে
};
console.log(obj); // { a: 'foo', bar: 'baz' }
ব্যবহারিক উদাহরণ: ফর্ম ডেটা থেকে অবজেক্ট বানানো
const formData = new FormData(formElement);
const data = {};
for (const [key, value] of formData.entries()) {
data[key] = value; // ব্র্যাকেট নোটেশন ব্যবহার
}
// বা এক লাইনে:
const data = Object.fromEntries(formData);
সামान्य ভুল এড়ানোর টিপস
- ডট নোটেশন কাজ করবে না:
obj.prop = 'baz'এখানে 'prop' স্ট্রিং হিসেবে নেওয়া হবে, ভেরিয়েবল হিসেবে নয়। - রিজার্ভড ওয়ার্ড: প্রপার্টি নাম রিজার্ভড ওয়ার্ড (যেমন
class,function) হলে ব্র্যাকেট নোটেশন বাধ্যতামূলক। - স্পেশাল ক্যারেক্টার: স্পেস বা হাইফেন থাকলে ব্র্যাকেট নোটেশন ব্যবহার করুন:
obj['my-prop'] = 1।
সারসংক্ষেপ
| পদ্ধতি | সিনট্যাক্স | ব্যবহার |
|---|---|---|
| ব্র্যাকেট নোটেশন | রানটাইমে ডাইনামিক কী | |
| কম্পিউটেড প্রপার্টি | অবজেক্ট লিটারেলে ডাইনামিক কী (ES6) |
আধুনিক কোডে কম্পিউটেড প্রপার্টি নাম (ES6) পদ্ধতিই পছন্দনীয়।