📦 Map = Key-Value. Set = Unique Values.
Objects are key-value, but limited. Map is better for key-value. Set stores unique values. Faster, cleaner.
📘 Object
const obj = {};
obj.name = "Alice";
obj.age = 30;
// Keys are strings only
📗 Map
const map = new Map();
map.set('name', 'Alice');
map.set(42, 'Answer');
map.set(true, 'Boolean key');
// Any key type!
🎯 Map Methods
// Create map
const map = new Map();
// Set values
map.set('name', 'Alice');
map.set('age', 30);
// Get values
map.get('name'); // 'Alice'
// Check existence
map.has('age'); // true
// Delete value
map.delete('age');
// Size
map.size; // 1
// Clear all
map.clear();
// Iterate
for (let [key, value] of map) {
console.log(key, value);
}
// Convert from object
const obj = { name: 'Alice', age: 30 };
const mapFromObj = new Map(Object.entries(obj));
// Convert to object
const objFromMap = Object.fromEntries(map);
💡 Set Example
// Create set
const set = new Set();
// Add values (unique)
set.add(1);
set.add(2);
set.add(2); // Ignored (duplicate)
// Check existence
set.has(1); // true
// Delete
set.delete(2);
// Size
set.size; // 1
// Convert array to set (remove duplicates)
const arr = [1, 2, 2, 3, 4, 4, 5];
const unique = new Set(arr); // {1, 2, 3, 4, 5}
// Convert set to array
const uniqueArray = [...unique]; // [1, 2, 3, 4, 5]
// Union, intersection, difference
const setA = new Set([1, 2, 3]);
const setB = new Set([2, 3, 4]);
const union = new Set([...setA, ...setB]); // {1, 2, 3, 4}
const intersection = new Set([...setA].filter(x => setB.has(x))); // {2, 3}
const difference = new Set([...setA].filter(x => !setB.has(x))); // {1}
“Map and Set are more efficient than objects and arrays for certain use cases. Map for key-value, Set for unique values.”
