How to prevent this error, I am trying what ever I can, not possible to add return inside map.
Error:
Line 32:26: Array.prototype.map() expects a return value from arrow function array-callback-return
const parseChartData = (field: string, data: string[][]) => {
let chartData = [[field, 'count']];
data.map((item: any) => {
chartData.push([item._id, item._count])
});
return chartData;
};
CodePudding user response:
If I understand correctly, you want to convert your data into pairs of [id, count], prepended by a header pair [field, 'count']?
Leaving type aside, you could:
- Convert
dataintochartDatawithmap - Prepend the header with
array.unshift()
const chartData = data.map((item) =>
[item._id, item._count]
);
chartData.unshift([field, 'count']);
As for types, make sure your parameter typing is consistent with how you use it:
dataparameter is declared asstring[][]- each of its items (hence a
string[]) is used asitem._id, item._count, i.e. we try accessing its_idand_countproperties, which are not supposed to exist onstring[]
Hence the very probable reason why you had to type each item as any.
If your data is actually an array of objects with _id and _count properties, then simply type it ad such:
data: Array<{ _id: string; _count: number }>
CodePudding user response:
if you don't want to map return data,Why not use forEach?please look up mdn docs
const parseChartData = (field: string, data: string[][]) => {
let chartData = [[field, 'count']];
data.forEach((item: any) => {
chartData.push([item._id, item._count])
});
return chartData;
};
