Syntax
const myMap = new Map();
myMap.set(key, value);
myMap.get(key);Examples
Basic Map Operations
Creating a Map and using its core methods.
const userRoles = new Map();
userRoles.set("alice", "admin");
userRoles.set("bob", "editor");
console.log(userRoles.get("alice")); // "admin"
console.log(userRoles.has("bob")); // true
console.log(userRoles.size); // 2
userRoles.delete("bob");
console.log(userRoles.size); // 1Object Keys, Not Just Strings
Unlike plain objects, Map keys can be any value, including objects and functions.
const objKey = { id: 1 };
const map = new Map();
map.set(objKey, "some value");
map.set("stringKey", "another value");
map.set(42, "number key value");
console.log(map.get(objKey)); // "some value"
console.log(map.get({ id: 1 })); // undefined - a different object reference!Iterating a Map
Maps are iterable, yielding [key, value] pairs in insertion order.
const inventory = new Map([
["apples", 50],
["bananas", 30]
]);
for (const [item, count] of inventory) {
console.log(`${item}: ${count}`);
}
// apples: 50
// bananas: 30
console.log([...inventory.keys()]); // ["apples", "bananas"]
console.log([...inventory.values()]); // [50, 30]Best practices
- Use Map when keys are not simple strings, when key order matters, or when you need frequent additions/removals with reliable size tracking
- Use plain objects for simple, fixed-shape records (like a single user's data) where you know the property names ahead of time
- Remember Map keys are compared by reference for objects - two different object literals with identical content are treated as different keys
- Use Map.prototype.entries()/keys()/values() to iterate in a specific way when the default [key, value] iteration is not what you need
Runtime & versions
Browsers and JavaScript runtimes. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
ECMAScript specification