JavaScript-এ একটি সাদা অবজেক্টকে Map অবজেক্টে রূপান্তর করার পদ্ধতি।
কেন Map ব্যবহার করবেন?
- কী হিসেবে যেকোনো টাইপ ব্যবহার করা যায় (না কেবল স্ট্রিং)
- অর্ডার সংরক্ষিত থাকে (ইনসারশন অর্ডার)
- সাইজ প্রোপার্টি আছে (
.size) - ইটারেবল এবং ফরঅফ লুপে কাজ করে
- পারফরম্যান্স বেস্ট ফরিকুয়েন্ট অ্যাড/ডিলিটের জন্য
সমাধান
const objectToMap = (obj) => {
const map = new Map();
for (const key of Object.keys(obj)) {
map.set(key, obj[key]);
}
return map;
};
// আরও সংক্ষিপ্ত (ES6+)
const objectToMapShort = (obj) => new Map(Object.entries(obj));
// টেস্ট
const obj = {
name: "Vikas",
age: 45,
occupation: "Frontend Developer",
address: "Tilak Nagar, New Delhi",
experience: 23,
salary: "98000"
};
const myMap = objectToMap(obj);
console.log(myMap);
// Map(6) {
// 'name' => 'Vikas',
// 'age' => 45,
// 'occupation' => 'Frontend Developer',
// 'address' => 'Tilak Nagar, New Delhi',
// 'experience' => 23,
// 'salary' => '98000'
// }
// Map অপারেশন
console.log(myMap.get('name')); // "Vikas"
console.log(myMap.has('age')); // true
console.log(myMap.size); // 6
myMap.set('newKey', 'newValue'); // যোগ করা
myMap.delete('salary'); // মুছে ফেলা
Map vs Object
| ফিচার | Object | Map |
|---|---|---|
| কী টাইপ | স্ট্রিং/সিম্বল | যেকোনো টাইপ |
| অর্ডার | গ্যারান্টি নেই (ES2015+ এ есть) | ইনসারশন অর্ডার |
| সাইজ | Object.keys().length | .size প্রোপার্টি |
| ইটারেশন | for...in / Object.entries | for...of / forEach |
উৎপাদন
Map(6) {
'name' => 'Vikas',
'age' => 45,
'occupation' => 'Frontend Developer',
'address' => 'Tilak Nagar, New Delhi',
'experience' => 23,
'salary' => '98000'
}