πŸ—ΊοΈ

How to Use Map and Set in JavaScript

JavaScriptIntermediate

Advanced data structures for key-value pairs and unique values.

Code Example

JavaScript
// Map - key-value pairs
const map = new Map();
map.set("name", "Alice");
map.set("age", 30);
map.set("city", "NYC");

console.log(map.get("name")); // "Alice"
console.log(map.has("age")); // true
console.log(map.size); // 3

// Iterate Map
for (const [key, value] of map) {
  console.log(`${key}: ${value}`);
}

// Map methods
map.delete("city");
map.clear();

// Initialize Map
const userMap = new Map([
  ["id", 1],
  ["name", "Bob"],
  ["active", true]
]);

// Any type as key
const objKey = { id: 1 };
const mapWithObjKey = new Map();
mapWithObjKey.set(objKey, "Object value");
console.log(mapWithObjKey.get(objKey));

// Set - unique values
const set = new Set([1, 2, 3, 2, 1]);
console.log(set); // Set(3) {1, 2, 3}

set.add(4);
set.add(2); // Ignored (already exists)
console.log(set.has(3)); // true
console.log(set.size); // 4

// Iterate Set
for (const value of set) {
  console.log(value);
}

// Remove from Set
set.delete(2);
set.clear();

// Practical examples
// Remove duplicates from array
const numbers = [1, 2, 2, 3, 3, 3, 4];
const unique = [...new Set(numbers)];
console.log(unique); // [1, 2, 3, 4]

// Count occurrences
const fruits = ["apple", "banana", "apple", "cherry", "banana", "apple"];
const counts = new Map();
fruits.forEach(fruit => {
  counts.set(fruit, (counts.get(fruit) || 0) + 1);
});
console.log(counts);

// Set operations
const setA = new Set([1, 2, 3, 4]);
const setB = new Set([3, 4, 5, 6]);

// Union
const union = new Set([...setA, ...setB]);
console.log(union); // {1, 2, 3, 4, 5, 6}

// Intersection
const intersection = new Set([...setA].filter(x => setB.has(x)));
console.log(intersection); // {3, 4}

// Difference
const difference = new Set([...setA].filter(x => !setB.has(x)));
console.log(difference); // {1, 2}

Explanation

Map stores key-value pairs (any type as key). Set stores unique values. Both are iterable. Use Set to remove duplicates, Map for complex keys.

Related Tutorials