On Thu, Jun 27, 2013 at 8:11 PM, Tab Atkins Jr. <[email protected]>wrote:
> On Thu, Jun 27, 2013 at 5:06 PM, Allen Wirfs-Brock > <[email protected]> wrote: > > On Jun 27, 2013, at 4:47 PM, Tab Atkins Jr. wrote: > >> Has it been discussed yet to add an .update() method to Map and Set, a > >> la Python, which take an iterable (yielding [key, value] for Map, and > >> just value for Set) and add the iterable's entries to the Map/Set? > >> > >> It desugars easily: > >> > >> Map.prototype.update = function(iter) { > >> Map(iter).forEach((v,k)=>this.set(k,v)); > >> }; > >> Set.prototype.update = function(iter) { > >> Set(iter).forEach(v=>this.add(v)); > >> }; > >> > >> I've used this kind of dict/set addition in Python plenty, and added > >> the method to my Map polyfill that I use for some personal projects. > >> > >> Thoughts? > >> > > > > for (let [k,v] of iter) myMap.set(k,v) > > Right, it's easy to write yourself, but it's a common enough operation > that Python found it worthwhile to add, and I found it useful for my > own purposes. > My gut reaction was the same as Allen's, but Ruby's Hash also has update(other_hsh) (though it is the same as merge!) > > In particular, I like that it just returns the modified map/set, so > it's easy to chain with, or to immediately return. > I was wondering about this while reading your OP, but you're not returning anything in that "desugaring". Anyway, I agree with this reasoning. Rick > It's basically equivalent to dest.splice(-1, 0, ...source) for Arrays. > (Or concat, if you ignore the fact that it doesn't alter the > destination.) > > ~TJ > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

