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 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 :)
Recent blog posts
- watir-webdriver web inspector
- gem list to gemfile
- Packing ruby2.0 on debian.
- Made it into The Guinness Book!
- to_h in ruby 2.0
- Filter elements by pattern jQuery.
- Better HTML password fields for mobile ?
- Grayscale image when user offline
- nth-child CSS pseudo-class Christmas colors
- EventEmitter in nodejs