জাভাস্ক্রিপ্টের Map একটি ডেটা স্ট্রাকচার যা কী-ভ্যালু (Key-Value) পেয়ার ধারণ করতে ব্যবহার করা হয়। এটি একটি অবজেক্টের মতো কাজ করে, তবে Map-এর কিছু অতিরিক্ত সুবিধা রয়েছে। Map-এ যেকোনো ধরনের ডেটা (অবজেক্ট, অ্যারে, স্ট্রিং, ইত্যাদি) কী বা ভ্যালু হিসেবে ব্যবহার করা যায়। এটি মূলত দ্রুত এবং আরও কার্যকর কী-ভ্যালু স্টোরেজের জন্য ব্যবহৃত হয়।
Map তৈরি করা
Map তৈরি করতে new Map() কনস্ট্রাক্টর ব্যবহার করা হয়।
let map = new Map();
এখানে একটি ফাঁকা Map তৈরি করা হয়েছে।
Map এর বৈশিষ্ট্য
কী-ভ্যালু সংযোজন
Map-এ নতুন কী-ভ্যালু জোড়া যুক্ত করতে .set() মেথড ব্যবহার করা হয়:
let userRoles = new Map();
userRoles.set("admin", "John");
userRoles.set("editor", "Jane");
console.log(userRoles);
// আউটপুট: Map { "admin" => "John", "editor" => "Jane" }
একটি মান খোঁজা
Map থেকে একটি নির্দিষ্ট কী-এর মান পেতে .get() মেথড ব্যবহার করা হয়:
let roles = new Map();
roles.set("admin", "John");
console.log(roles.get("admin"));
// আউটপুট: John
কী বিদ্যমান কিনা চেক করা
Map-এ একটি কী বিদ্যমান কিনা তা যাচাই করতে .has() মেথড ব্যবহার করা হয়:
let roles = new Map();
roles.set("admin", "John");
console.log(roles.has("admin"));
// আউটপুট: true
console.log(roles.has("editor"));
// আউটপুট: false
কী-ভ্যালু অপসারণ
Map থেকে একটি নির্দিষ্ট কী-ভ্যালু পেয়ার সরাতে .delete() মেথড ব্যবহার করা হয়:
let roles = new Map();
roles.set("admin", "John");
roles.delete("admin");
console.log(roles);
// আউটপুট: Map {}
Map পরিষ্কার করা
Map থেকে সমস্ত কী-ভ্যালু জোড়া মুছে ফেলতে .clear() মেথড ব্যবহার করা হয়:
let roles = new Map();
roles.set("admin", "John");
roles.clear();
console.log(roles);
// আউটপুট: Map {}
Map এর আকার জানা
Map এর মোট কী-ভ্যালু জোড়ার সংখ্যা জানতে .size প্রপার্টি ব্যবহার করা হয়:
let roles = new Map();
roles.set("admin", "John");
roles.set("editor", "Jane");
console.log(roles.size);
// আউটপুট: 2
Map-এ লুপ করা
Map এর কী এবং ভ্যালুতে লুপ করার জন্য for...of লুপ বা .forEach() মেথড ব্যবহার করা যায়।
for...of লুপ
let roles = new Map([
["admin", "John"],
["editor", "Jane"]
]);
for (let [key, value] of roles) {
console.log(`${key}: ${value}`);
}
// আউটপুট:
// admin: John
// editor: Jane
.forEach() মেথড
roles.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// আউটপুট:
// admin: John
// editor: Jane
অবজেক্ট বনাম ম্যাপ
অবজেক্ট এবং Map উভয়ই কী-ভ্যালু পেয়ার ধারণ করতে পারে, তবে তাদের মধ্যে কিছু পার্থক্য রয়েছে:
| বৈশিষ্ট্য | অবজেক্ট (Object) | ম্যাপ (Map) |
|---|---|---|
| কী-টাইপ | শুধুমাত্র স্ট্রিং বা সিম্বল। | যেকোনো ডেটা টাইপ। |
| উপাদানের সংখ্যা | গণনা করতে লুপ প্রয়োজন। | .size প্রপার্টি ব্যবহার করে তাৎক্ষণিক গণনা। |
| ক্রমানুসার | কী-ভ্যালু ক্রম অপ্রত্যাশিত। | কী-ভ্যালু ইনসার্ট করা ক্রম অনুযায়ী। |
| পারফরম্যান্স | বড় ডেটার ক্ষেত্রে ধীর। | বড় ডেটার ক্ষেত্রে দ্রুত। |
সারাংশ
Map একটি শক্তিশালী ডেটা স্ট্রাকচার যা কী-ভ্যালু পেয়ার সংরক্ষণ এবং পরিচালনার জন্য আরও কার্যকর। এটি অবজেক্টের তুলনায় বেশি ফ্লেক্সিবল এবং দ্রুত। Map এর .set(), .get(), .has(), .delete() এবং .size প্রপার্টি ও মেথড ব্যবহার করে সহজেই ডেটা পরিচালনা করা যায়। Map এমন পরিস্থিতিতে আদর্শ যেখানে আপনাকে কী-ভ্যালু পেয়ার খুবই নির্ভুল এবং দ্রুততার সাথে ম্যানেজ করতে হবে।
Read more