ES6 Maps, WeakMaps, Sets, and WeakSets

node v0.12.18
version: 5.0.0
Maps and Sets are new Collections in JavaScript that extend its capabilities beyond just Objects and Arrays. Maps are kind of like objects, but allow you to use *any* object as a key, not just strings:
var map = new Map(); var key = { name: "Object Key" }; var value = { name: "Object Value" }; // This wouldn't be possible using just an object. map.set(key, value); map.get(key);
With a Map, you'll also never accidentally overwrite a property with a storage key:
map.set("size", "value"); console.log(map.get("size") + " vs. " + map.size);
Sets are more like arrays, but only have unique values in them:
var array = [1,3,5,1,5,5,3]; var uniqueValues = new Set(); array.forEach(value => uniqueValues.add(value)); uniqueValues.forEach((value) => console.log(value));
WeakMaps and WeakSets provide "leak-free" versions of these, by not storing references to the keys. You can read more about Maps, Sets, and their weak counterparts here:

no comments

    sign in to comment