我正在使用Angular开发,以下是我的Typescript对象数组:
docs = [
{
id: '1',
type: {
id: 1
desc: 'Category 1',
}
title: 'Foo",
date: '2018-06-21',
attachments: [
{ id: 51, filename: 'foo.pdf', title: 'Foo' },
{ id: 20, filename: 'bar.doc', title: 'Bar' }
]
},
{
id: '2',
type: {
id: 2
desc: 'Category 2',
}
title: 'Bar",
date: '2018-06-21',
attachments: [
{ id: 15, filename: 'foobar.xls', title: 'Foobar' },
{ id: 201, filename: 'example.doc', title: 'Example' }
]
}
]
我需要获取属性的子集,类似于这样:
docs = [
{
id: '1',
type: {
id: 1
desc: 'Category 1',
}
attachments: [
{ id: 51 },
{ id: 20 }
]
},
{
id: '2',
type: {
id: 2
desc: 'Category 2',
}
attachments: [
{ id: 15 },
{ id: 201 }
]
}
]
我该如何实现这个功能呢?我需要创建一个解析器吗,还是有类似Lodash的智能方法可以提取数组的简化版本呢?
map = array.map(_ => _.x)
。 - smartmouseconst result = docs.map(({ id, type, attachments }) => ({id, type, attachments: attachments.map(a => a.id)}));
- Aleksey L.