JavaScript Map
and Set
objects are both iterable objects. Both store object by [key, value]
pair.
When to use which? What is the difference between them?
Advertisement
Answer
Provided you are talking about the ES6 types, they aren’t the same data structure even though the Set
might be implemented with a Map
.
Your definition of Map
is right, but a Set
is a collection of unique values, unlike an array which can have duplicates.
var array = [1, 2, 3, 3]; var set = new Set(array); // Will have [1, 2, 3] assert(set.size, 3); var map = new Map(); map.set('a', 1); map.set('b', 2); map.set('c', 3); map.set('C', 3); map.set('a', 4); // Has: a, 4; b, 2; c: 3, C: 3 assert(map.size, 4);