我试图返回具有选定键的新对象-reqProps。我设法通过修复props prop1,prop3做到了这一点,现在希望能够传递reqProps数组值来替换prop1,prop3。我尝试了函数,字符串文字和一些“ hacks”。他们都没有工作
const data = [
{
prop1: 1,
prop2: 2,
prop3: 3
},
{
prop1: 10,
prop2: 20,
prop3: 30
},
{
prop2: 200,
prop4: 400
},
{
prop3: 3000
}
];
// to return properties for the following...
const reqProps = ['prop2','prop3','prop4'];
// current implementation fixing return object with prop1, prop3
const obj = data.map(({prop1, prop3}) => {
return {prop1, prop3};
});
目前obj的结果是
[{"prop1":1,"prop3":3},{"prop1":10,"prop3":30},{},{"prop3":3000}]
我不想使用循环,就像解构的“力量”一样! ;)
最佳答案
如果您坚持要进行销毁,则必须使用eval
:
const reqProps = ['prop2','prop3','prop4'];
const literalString = '{'+reqProps.join(',')+'}';
const obj = data.map(new Function(literalString, 'return '+literalString));
您确实应该使用循环-您也可以将其隐藏在辅助函数中,或者仅使用
reduce
。关于javascript - ES6中的简单解构数组/对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46063766/