I meant the forEach on a Set which I've never seen before in specs ... ;-)
On Mon, Dec 3, 2012 at 2:54 PM, Rick Waldron <waldron.r...@gmail.com> wrote: > > > > On Mon, Dec 3, 2012 at 5:49 PM, Andrea Giammarchi < > andrea.giammar...@gmail.com> wrote: > >> fair enough ... but here there was a typo, right? >> >> set.add( value ).forEach( item => ...send to some operation.... ); >> > > Possibly? s/item/value/ ? > > Rick > >> >> >> Thanks >> >> >> On Mon, Dec 3, 2012 at 2:44 PM, Rick Waldron <waldron.r...@gmail.com>wrote: >> >>> >>> >>> >>> On Mon, Dec 3, 2012 at 5:21 PM, Andrea Giammarchi < >>> andrea.giammar...@gmail.com> wrote: >>> >>>> IMHO, a set(key, value) should return the value as it is when you >>>> address a value >>>> >>>> var o = m.get(k) || m.set(k, v); // o === v >>>> >>>> // equivalent of >>>> >>>> var o = m[k] || (m[k] = v); // o === v >>>> >>>> a set with a key that returns `this` is a non case so almost as useless >>>> as the void return is. >>>> >>> >>>> Usefulness comes with use cases ... except this jQuery chainability >>>> thingy that works fine for jQuery structure ( an ArrayLike Collection ) >>>> >>> >>> A collection is a collection. >>> >>> who asked for map.set(k0, v0).set(k1, v1).set(k2, v2) ? Or even >>>> map.set(k0,v0).get(k1) ? what are use cases for this? >>>> >>>> I am honestly curious about them because I cannot think a single one >>>> ... specially with the Set >>>> >>>> s.add(k0).add(k1).add(k2) ... this code looks weird inlined like this >>>> ... >>>> >>> >>> You're completely ignoring the iterator APIs and forEach—either of which >>> a program might want to call on an object post-mutation: >>> >>> Add value to the Set and... >>> >>> - get a fresh iterable for the values (or keys, or entries): >>> >>> set.add( value ).values(); >>> >>> - send each value in the set to another operation: >>> >>> set.add( value ).forEach( item => ...send to some operation.... ); >>> >>> - spread into an array of unique items: >>> >>> [ ...set.add(value) ]; // always unique! yay! >>> >>> >>> Add a key and value to the Map and... >>> >>> - get a fresh iterable for the keys (or values, or entries) >>> >>> map.set( key, val ).keys(); >>> map.set( key, val ).values(); >>> map.set( key, val ).entries(); >>> >>> - send each to pair to another operation (see above) >>> >>> - spread into an array of pairs (see above) >>> >>> >>> Being able to express the complete operation and get mutated object back >>> at once is a compelling use case. >>> >>> Rick >>> >>> >>>> >> >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss