我有下面的对象数组
const reports = [{id:3, name:'three', description:'three d', other: 'other 3'}, {id:2, name:'two', description:'two d', other: 'other 2'}];
我只想过滤每个对象的2个属性,下面是我想要的输出
[{id:3, name:'three'}, {id:2, name:'two'}];
所以尝试过这种方式
const reportList = reports.map((report) => {id,name} );
console.log(reportList);
抛出错误
ReferenceError:未定义ID
即使我也可以使用这种方法来实现
this.reportList = reports.map((report) => ({
id: report.id,
name: report.name,
description: report.description
}));
但是在这里我需要编写额外的代码,我想使用通过键使用对象访问器,无论如何我可以实现吗?
答案 0 :(得分:1)
必须将返回的对象文字包装在括号中。否则,花括号将被视为表示功能的主体。以下作品:
const reports = [{
id: 3,
name: 'three',
description: 'three d',
other: 'other 3'
}, {
id: 2,
name: 'two',
description: 'two d',
other: 'other 2'
}];
const reportList = reports.map(({id, name}) => ({
id,
name
}));
console.log(reportList);
参考:Returning object literals,由MDN