Default value for Map

Brendan Eich brendan at mozilla.org
Wed Nov 28 13:45:23 PST 2012


See also 
https://mail.mozilla.org/pipermail/es-discuss/2012-January/019723.html 
where defaultdict was raised on es-discuss for the first time (if I'm 
not mistaken).

/be

Yehuda Katz wrote:
> There are many cases involving nested data structures where the 
> ability to define a default value in Maps would be helpful.
>
> Straw Man:
>
> var map = new Map(=> [])
> var arr = map.get('foo')
> arr === map.get('foo') // true
>
> This enables:
>
> map.get('foo').push(obj)
>
> Which would be (*very*) approximately equivalent to:
>
> class MapWithDefault extends Map {
>   constructor(default) {
>     this.defaultValue = default;
>     super();
>   }
>
>   get(key) {
>     if (!this.contains('foo')) {
>       let value = this.defaultValue(key);
>       map.set(key, value);
>     }
>
>     return super(key);
>   }
> }
>
> -- 
> Yehuda Katz
> (ph) 718.877.1325
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list