Free Online Code Editor
Advanced data structures for key-value pairs and unique values.
// 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}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.