我想要一个方法,接受一个对象数组和一个包含部分对象键的数组。该方法将返回一个只包含选定键的对象值的二维数组。
数据为:
领域:
结果:
到目前为止,我有一个能提供所需结果的函数,但我不确定如何更好地处理类型。
我尝试了下一个片段的一些变化,但是出现了错误。
数据为:
[
{"firstName": "Jane", "lastName": "Doe"},
{"firstName": "John", "lastName": "Doe"}
]
领域:
["firstName"]
结果:
[["Jane"], ["John"]]
到目前为止,我有一个能提供所需结果的函数,但我不确定如何更好地处理类型。
mapToCsvData: (data: { [key: string]: any }[], fields: string[]) => {
return data.map((item: any) => {
return fields.map(field => item[field]);
});
}
我尝试了下一个片段的一些变化,但是出现了错误。
mapToCsvData: <T extends object>(data: T[], fields: keyof T[]) => {
Property 'map' does not exist on type 'number'.
Array
,这样更容易阅读。对于(keyof T)[]
,你需要加上()
,而且很容易忽略末尾的[]
。不过我相信这个lint规则是可以配置的。 - Titian Cernicova-Dragomir