Just to clarify, the existing Map has a first parameter, so there would need to be some additional API work here (second parameter with undefined first parameter, second class, `defaultValue` setter, etc.).
On Wed, Nov 28, 2012 at 1:45 PM, Brendan Eich <[email protected]> wrote: > See also https://mail.mozilla.org/**pipermail/es-discuss/2012-** > January/019723.html<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 >> [email protected] >> https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss> >> > -- Yehuda Katz (ph) 718.877.1325
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

