Skip to main content

Command Palette

Search for a command to run...

Map and Set in JavaScript

Published
3 min read
Map and Set in JavaScript
S

Learning web development in public. Writing simple, real-world explanations about web development concepts. Helping beginners understand why things work, not just how.

In this article, we’ll learn about two important data structures in JavaScript: Map and Set.

What we are going to learn:

  • What Map is

  • What Set is

  • Difference between Map and Object

  • Difference between Set and Array

  • When to use Map and Set


What Map is?

A Map is a collection of key-value pairs, just like an object — but more powerful and flexible.

The main difference is:
In a Map, keys can be of any type (not just strings).

Example:

const map = new Map();

map.set("name", "Josh");
map.set(1, "number key");
map.set(true, "boolean key");

console.log(map.get("name")); // Josh
console.log(map.get(1)); // number key

Important methods:

map.set(key, value)   // add value
map.get(key)          // get value
map.has(key)          // check if key exists
map.delete(key)       // remove key
map.clear()           // remove all

What Set is?

A Set is a collection of unique values.

It automatically removes duplicates.

Example:

const set = new Set([1, 2, 2, 3, 4, 4]);

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

Important methods:

set.add(value)     // add value
set.has(value)     // check value
set.delete(value)  // remove value
set.clear()        // remove all

Difference between Map and Object

Feature Map Object
Key type Any type (number, object, boolean) Only string or symbol
Order Maintains insertion order Not guaranteed (older behaviour)
Iteration Easy with for...of Need extra methods
Performance Better for frequent add/remove Good for simple use cases

Example:

const obj = {};
obj[1] = "one";   // converted to string "1"

const map = new Map();
map.set(1, "one"); // stays number

So Map keeps the original type of keys.


Difference between Set and Array

Feature Set Array
Duplicates Not allowed Allowed
Order Maintains order Maintains order
Access No index Index-based
Use case Unique values Ordered list

Example:

const arr = [1, 2, 2, 3];
const set = new Set(arr);

console.log(arr); // [1, 2, 2, 3]
console.log(set); // {1, 2, 3}

When to use Map and Set

Use Map when:

  • You need key-value pairs

  • Keys are not just strings (like numbers, objects)

  • You need better performance for frequent updates

Example:

const userRoles = new Map();

userRoles.set("user1", "admin");
userRoles.set("user2", "editor");

Use Set when:

  • You need unique values only

  • You want to remove duplicates

  • You just care about existence (not position)

Example:

const numbers = [1, 2, 2, 3, 4];
const uniqueNumbers = new Set(numbers);

console.log(uniqueNumbers); // {1, 2, 3, 4}

Final Thoughts

  • Map is like an advanced object with more flexibility

  • Set is perfect when you only care about unique values

Both are very useful in real-world applications, especially when working with data.

Start using them in small projects, and you’ll quickly understand where they fit best.

Map and Set in JavaScript