Well...this is a major problem, then! Indeed, Object.pick would be very promising, but it could indeed break some codes!
On Fri, Mar 17, 2017 at 9:48 AM, Michał Wadas <[email protected]> wrote: > It's impossible to add new methods on Object.prototype because it would be > web-breaking - I have seen code that test for typeof arr.map === > 'function' > > On Set topic, I have written basic proposal for this > <https://github.com/Ginden/set-methods>, but it was ignored so I didn't > write formal spec. > > On 17/03/17 13:36, James Treworgy wrote: > > I think a good solution that doesn't require new syntax would be > map/filter methods on the Object prototype that return a new object, e.g. > > let subset = { a:1, b:2, c:3 }.filter(([key])=>['b'].includes(key)) > // subset = { b: 2 } > > let subset = { 1:1, b:2, c:3 }.map(([key, value])=>[key, value * 2]) > // subset = { a:2, b:4. c:6 } > > Actually I'd like this to be available on Map too. I've always thought it > was interesting that the Map and Set objects do not natively include > map/filter operations -- or maybe even most of the Array prototype methods > as applicable. And for Sets, basic set operations like > except/distinct/union. > > But a Javascript object is just a Map, really, or I guess one could say > that a Map is just an object with a few enhancements. It's surprising that > there is no native operation built in to directly convert between Maps and > objects given their conceptual similarity. In either case though it would > be nice to be able to apply standard processing rules that one applies to > Maps conceptually to an Object (and a Map) natively, like filter and map. > > > > On Fri, Mar 17, 2017 at 8:04 AM, Felipe Nascimento de Moura < > [email protected]> wrote: > >> Hi. >> Interesting to know that it has already been discussed. >> >> I know we could create a function to do similar things, but I think the >> language itself has evolved so well, this is a use case it could fit >> somehow. >> >> I think there could be different approaches for that, like >> >> Object.pick([ 'a', 'c' ], { a: 1, b: 2, c: 3 }) >> >> or >> >> let x = {a, c}{ a: 1, b: 2, c: 3 } >> >> or >> >> let {a, c} as x = { a: 1, b: 2, c: 3 } >> >> or >> >> >> let x = { a: 1, b: 2, c: 3 }{a, c} >> >> or >> >> let x = { a: 1, b: 2, c: 3 }['a', 'c'] >> >> Would you consider any of those as an interesting option? >> >> thanks. >> >> >> >> On Fri, Mar 17, 2017 at 7:25 AM, peter miller <[email protected]> >> wrote: >> >>> Hi, >>> >>> There seems to be little appetite for taking it up, in spite of it being >>>> (IMHO) a very common use case. >>>> >>> >>> I'll second it being common in my code. My personal highlights would be >>> assigning to this: >>> >>> ``` >>> this.{x,y,z} = a; >>> ``` >>> >>> and combining it with property spreading: >>> >>> ``` >>> const result = { a, b, ...x.{ y, z }, ...p.{ q, r } }; >>> ``` >>> >>> Peter >>> >>> -- >>> "There were drawings, and sheets of paper with writing on them, and it >>> seemed that they were the sustenance of life, that here were the warlocks, >>> almost the vehicles of destruction of man's life, but at the same time the >>> very reason for his living." --- Maeve Gilmore/Titus Awakes. >>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/es-discuss >>> >> >> >> >> -- >> [ ]s >> >> *--* >> >> *Felipe N. Moura* >> Web Developer, Google Developer Expert >> <https://developers.google.com/experts/people/felipe-moura>, Founder of >> BrazilJS <https://braziljs.org/> and Nasc <http://nasc.io/>. >> >> Website: http://felipenmoura.com / http://nasc.io/ >> Twitter: @felipenmoura <http://twitter.com/felipenmoura> >> Facebook: http://fb.com/felipenmoura >> LinkedIn: http://goo.gl/qGmq >> --------------------------------- >> *Changing the world* is the least I expect from myself! >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss >> >> > > > _______________________________________________ > es-discuss mailing > [email protected]https://mail.mozilla.org/listinfo/es-discuss > > > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > > -- [ ]s *--* *Felipe N. Moura* Web Developer, Google Developer Expert <https://developers.google.com/experts/people/felipe-moura>, Founder of BrazilJS <https://braziljs.org/> and Nasc <http://nasc.io/>. Website: http://felipenmoura.com / http://nasc.io/ Twitter: @felipenmoura <http://twitter.com/felipenmoura> Facebook: http://fb.com/felipenmoura LinkedIn: http://goo.gl/qGmq --------------------------------- *Changing the world* is the least I expect from myself!
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

