在地图中使用键名称访问对象属性

时间:2019-01-03 08:44:30

标签: object ecmascript-6

我有下面的对象数组

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
            }));

但是在这里我需要编写额外的代码,我想使用通过键使用对象访问器,无论如何我可以实现吗?

1 个答案:

答案 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