Javascript ES6:我可以使用对象销毁结果的值初始化变量吗?

Javascript ES6:我可以使用对象销毁结果的值初始化变量吗?,javascript,ecmascript-6,frontend,Javascript,Ecmascript 6,Frontend,那么,我有: const obj = { a: 1, b: 2, c: 3 }; const { a, c } = obj; const newObj = { a, c }; //newObj is { a: 1, c: 3 } now 我想要的是: const newObj = { a, c } = obj //newObj is { a: 1, c: 3 } now 大物件看起来更干净,但显然不起作用。 有什么想法吗 总结:@wostex提到的lodash.pick是目前最好的解决方案没

那么,我有:

const obj = { a: 1, b: 2, c: 3 };
const { a, c } = obj;
const newObj = { a, c };
//newObj is { a: 1, c: 3 } now
我想要的是:

const newObj = { a, c } = obj
//newObj is { a: 1, c: 3 } now
大物件看起来更干净,但显然不起作用。 有什么想法吗


总结:@wostex提到的lodash.pick是目前最好的解决方案

没有特别干净的方法可以做到这一点。我使用内联函数通过利用参数分解实现:

const newObj={a,b,c}=>{a,b,c}originalObj


这种解决方案的缺点是它不是动态的。例如,您不能使用此函数创建检索动态属性列表的Pull函数

也许是挑选?我不认为有一种方法可以做类似的事情,因为let a,c的返回值;{a,c}=obj是obj,不是匿名临时对象{a,c}@wostex-nice-one,但是如果可能的话,使用原始js会更加优雅。这是另一种方式,没有提到道具中的对象,而不是提到道具中的对象。在此之前,lodash.Chrome控制台:var originalObj={a:1,b:2,c:3};const newObj={a,b,c}=>a,b,coriginalObj;console.lognewObj;//输出为'3'不知道这是怎么回事happened@DmitriiS. 我有一个打字错误,我已经改正了