Skip to main content

Command Palette

Search for a command to run...

Map and Set in JavaScript Explained with Examples | Complete Guide 2026

Updated
4 min read
Map and Set in JavaScript Explained with Examples | Complete Guide 2026

If you’ve been using JavaScript objects and arrays for everything, you’re not alone. But modern JavaScript gives you Map and Set — two powerful data structures that solve real problems more efficiently.

This blog is your one-stop solution to understand:

  • What Map and Set are

  • Why they exist

  • How they differ from Object and Array

  • When to use them (with real examples)


🧠 1. What is a Map?

A Map is a collection of key-value pairs, just like objects — but with more flexibility and better performance for certain cases.

📊 Visual Idea: Map Storage

Image Image Image Image Image Image

✅ Key Features of Map:

  • Keys can be any type (string, number, object, function, etc.)

  • Maintains insertion order

  • Built-in methods for easy operations

💻 Example:

const map = new Map();

// Adding values
map.set("name", "Visha");
map.set(1, "One");
map.set(true, "Yes");

// Accessing values
console.log(map.get("name")); // Vishal

// Checking existence
console.log(map.has(1)); // true

// Size
console.log(map.size); // 3

🧠 2. What is a Set?

A Set is a collection of unique values — meaning no duplicates allowed.

📊 Visual Idea: Set Uniqueness

Image Image Image Image Image Image

✅ Key Features of Set:

  • Stores only unique values

  • Maintains insertion order

  • Great for removing duplicates

💻 Example:

const set = new Set();

// Adding values
set.add(1);
set.add(2);
set.add(2); // duplicate, ignored

console.log(set); // {1, 2}

// Check existence
console.log(set.has(1)); // true

// Size
console.log(set.size); // 2

⚠️ 3. Problems with Traditional Objects and Arrays

🧱 Problems with Objects:

const obj = {};
obj[{}] = "value";

console.log(obj); // [object Object]: "value"

👉 Problem:

  • Keys are automatically converted to strings

  • Cannot use complex types safely as keys


📦 Problems with Arrays:

const arr = [1, 2, 2, 3, 3];

👉 Problem:

  • Allows duplicates

  • Checking uniqueness requires extra logic


⚔️ 4. Map vs Object

Feature Map Object
Key Types Any type Only string/symbol
Order Maintained Not guaranteed (older JS)
Performance Better for frequent updates Slower in large data
Built-in Methods Yes (set, get) No direct methods
Size map.size Object.keys(obj).length

💡 Example Comparison:

// Object
const obj = {};
obj["name"] = "Virat";

// Map
const map = new Map();
map.set("name", "Virat");

👉 Use Map when keys are dynamic or not strings


⚔️ 5. Set vs Array

Feature Set Array
Duplicates ❌ Not allowed ✅ Allowed
Search Faster (has) Slower (includes)
Indexing ❌ No index ✅ Yes
Use Case Unique values Ordered data

💡 Example:

// Remove duplicates using Set
const arr = [1, 2, 2, 3];
const unique = [...new Set(arr)];

console.log(unique); // [1, 2, 3]

🚀 6. When to Use Map and Set

✅ Use Map when:

  • You need key-value pairs

  • Keys are not just strings

  • Frequent add/remove operations

Example:

const userRoles = new Map();
userRoles.set({ id: 1 }, "admin");

✅ Use Set when:

  • You want unique values

  • Need fast lookup (has())

Example:

const visitedPages = new Set();

visitedPages.add("/home");
visitedPages.add("/about");
visitedPages.add("/home"); // ignored

🧩 7. Real-World Use Cases

🔹 Remove duplicates from array

const nums = [1, 2, 2, 3];
const uniqueNums = [...new Set(nums)];

🔹 Count frequency using Map

const arr = ["a", "b", "a"];

const freq = new Map();

arr.forEach(item => {
  freq.set(item, (freq.get(item) || 0) + 1);
});

console.log(freq); // {a => 2, b => 1}

🧠 Final Summary

  • Map = Advanced Object (flexible key-value storage)

  • Set = Unique values collection

  • Use Map when keys are complex

  • Use Set when you need uniqueness

📌 Conclusion

Map and Set are not just alternatives — they are better tools for specific problems. Once you start using them properly, your code becomes:

✔ Cleaner ✔ Faster ✔ More scalable

More from this blog