<div dir="ltr">Please see <a href="https://github.com/sebmarkbage/ecmascript-rest-spread">https://github.com/sebmarkbage/ecmascript-rest-spread</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 19, 2016 at 11:32 AM, Zacqary Adam Xeper <span dir="ltr">&lt;<a href="mailto:zacqary.xeper@datadoghq.com" target="_blank">zacqary.xeper@datadoghq.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><p dir="ltr">So let&#39;s say I have:<br>let obj = {foo: 1, bar: 2, baz: 3}</p><p>And I want to initialize a new object that looks like:<br>{foo: obj.foo, bar: obj.bar, quux: 4}<br></p><p dir="ltr">I can create a new object with ALL of these properties using a spread operator:<br>let newObj = {...obj, quux: 4}</p><p>But if I want to initialize a new object that pulls in just the foo and bar properties, I have to type this whole structure out:<br>let newObj = {foo: obj.foo, bar: obj.bar, quux: 4}</p><p>Or, if I want to use shorthand property names, I can use a destructuring statement, but then I have to type all the property names twice:<br>let {foo, bar} = obj;<br>let newObj = {foo, bar, quux: 4};</p><p>Underscore.js has a pick function, which looks like this:<br>let newObj = {..._(obj).pick([&quot;foo&quot;, &quot;bar&quot;]), quux: 4};</p><p>but that requires Underscore as a dependency and the syntax is still pretty annoying. I feel like this is a common enough task — especially when trying to avoid mutating data — that there ought to be a native ES way of doing this.</p><p>For example, taking a cue from the computed property syntax:<br>let newObj = { {foo, bar}: obj, quux: 4 }</p><p>This also echoes ordinary destructuring syntax, where the variable names are on the left of the equals sign and the object is on the right. Here, it&#39;s the same, except for initializing objects.<br></p></div></div>
<br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>