---
title: "Sets and Maps in JavaScript"
description: "FF13 comes out with experimental support for ECMAScript 6 Map and Set objects. As maps and sets can be easily implemented."
url: "https://h3manth.com/scribe/sets-and-maps-javascript/"
canonical_url: "https://h3manth.com/scribe/sets-and-maps-javascript/"
markdown_url: "https://h3manth.com/scribe/blog/sets-and-maps-javascript.md"
publishDate: "2012-06-06T00:00:00.000Z"
author: "Hemanth HM"
category: "javascript"
tags: ["javascript","web"]
word_count: 262
reading_time_minutes: 2
x_markdown_tokens: 503
content_signal: "ai-train=yes, search=yes, ai-input=yes"
---

# Sets and Maps in JavaScript

> FF13 comes out with experimental support for ECMAScript 6 Map and Set objects. As maps and sets can be easily implemented.

**FF13 comes out with experimental support for ECMAScript 6 Map and Set objects.**

**As maps and sets can be easily implemented without this support, they have been introduced as experimental support**

**It's important to note :**

> An Object has a prototype, so there are default keys in the map. However, this can be bypassed using map = Object.create(null).
>     
>     
>     The keys of an Object are Strings, where they can be any value for a Map.
>     You can get the size of a Map easily while you have to manually keep track of size for an Object.
>     

So far Maps were implemented as normal objects  {}  and sets were implemented with a simple filter like [].sort.filter( function(v,i,o){return v!==o[i-1];}.

But now **FireFox 13** being the first browser to support these two APIs ( Seems more Java like though)

**Maps in Javascript with FF13 :**

**Map operations :** map.get(key); map.set(key, value); map.has(key); map.delete(key); map.size();

> > > map = new Map(); Map {}
>>> 
>>> map.set("GNU","Fun!");
>>> 
>>> map.size size()
>>> 
>>> map.size() 1
>>> 
>>> map.get("GNU") "Fun!" 

**Sets in Javascript with FF13**

**Set operations :** set.add(value);set.delete(value);set.has(value);set.size();

**SAD we still can't iterate over it! :(**

> > > var set = new Set();  
>  undefined
>>> 
>>> set.has(420) false
>>> 
>>> set.add(420) undefined
>>> 
>>> set.has(420) true
>>> 
>>> set.delete(420) true
>>> 
>>> set.has(420) false 

**Important to note!**

~~This is just a prototype implementation of the Set and Map API's it is (and will) subject to change anytime.~~

**Let's wait and watch how many will vote for these APIs :)**
