I want to have a method that accepts an array of objects and an array of some of the objects keys. The method will return an array of arrays of object values but only of the selected keys.
data:
[
{"firstName": "Jane", "lastName": "Doe"},
{"firstName": "John", "lastName": "Doe"}
]
fields:
["firstName"]
result:
[["Jane"], ["John"]]
By now I have a function that provides desired outcome but I am not sure how to handle the types better.
mapToCsvData: (data: { [key: string]: any }[], fields: string[]) => {
return data.map((item: any) => {
return fields.map(field => item[field]);
});
}
I have tried some variations of the next snippet but I get an error.
mapToCsvData: <T extends object>(data: T[], fields: keyof T[]) => {
Property 'map' does not exist on type 'number'.