🗃️ JavaScript Collections: Set, WeakSet, Map, WeakMap
Last Updated: 26th October 2025
JavaScript provides special objects to store collections of data in different ways:
- Set / WeakSet → store unique values
- Map / WeakMap → store key-value pairs
Hinglish Tip 🗣: Socho jaise cupboards → Set me ek type ka item ek hi baar; Map me har item ka label (key) hota hai.
Set
- Stores unique values of any type.
- Iterable → can loop with
for...of. - No duplicate values allowed.
Syntax:
const mySet = new Set([1, 2, 3]);
mySet.add(4);
mySet.add(2); // ignored, duplicate
console.log(mySet); // Set {1, 2, 3, 4}
Common Methods:
- add(value) → add a value
- delete(value) → remove a value
- has(value) → check existence
- clear() → remove all values
- size → number of values
WeakSet
- Similar to Set but only stores objects.
- Not iterable → cannot use for...of.
- Garbage collected if no other references exist.
let obj1 = { a: 1 };
let obj2 = { b: 2 };
const myWeakSet = new WeakSet([obj1]);
myWeakSet.add(obj2);
console.log(myWeakSet.has(obj1)); // true
Hinglish Tip 🗣: WeakSet temporary storage jaise hai — object delete ho gaya to automatically remove ho jaata hai.
Map
- Stores key-value pairs.
- Keys can be any type (object, number, string, etc.).
- Iterable → can loop with for...of.
Syntax:
const myMap = new Map();
myMap.set("name", "Amit");
myMap.set(1, "NumberOne");
myMap.set({}, "ObjectKey");
console.log(myMap.get("name")); // Amit
console.log(myMap.has(1)); // true
console.log(myMap.size); // 3
Common Methods:
- set(key, value) → add a key-value pair
- get(key) → get the value for a key
- has(key) → check existence
- delete(key) → remove a key-value pair
- clear() → remove all key-value pairs
- size → number of key-value pairs
WeakMap
- Similar to Map but only stores objects as keys.
- Not iterable → cannot use for...of.
- Garbage collected if no other references exist.
let keyObj = {};
const myWeakMap = new WeakMap();
myWeakMap.set(keyObj, "secret");
console.log(myWeakMap.get(keyObj)); // secret
Hinglish Tip 🗣: WeakMap sensitive info store karne ke liye best — memory automatically manage hoti hai.
💡 Quick Practice
- Create a Set with numbers [1,2,2,3] → see how duplicates are removed.
- Create a WeakSet with objects → check existence.
- Create a Map with keys 1, 'a', → print all values.
- Create a WeakMap with object keys → retrieve a value.