如何解决Array.prototype.map()期望箭头函数返回值的报错?无法添加return
解决Array.prototype.map()的array-callback-return报错问题
这个报错的核心是你误用了Array.map()方法:map的设计初衷是遍历数组并返回一个新的转换后的数组,要求回调函数必须有返回值;但你现在只是用它来遍历执行push操作,这完全违背了map的使用场景。
下面给你三种解决方案,按推荐优先级排序:
1. 替换为forEach(最适合当前场景)
forEach是专门用来遍历数组执行副作用操作的方法,不需要回调函数返回值,完美匹配你的需求:
const parseChartData = (field: string, data: string[][]) => { let chartData = [[field, 'count']]; data.forEach((item: any) => { chartData.push([item._id, item._count]) }); return chartData; };
2. 如果非要用map,添加返回值(不推荐)
如果你坚持要用map,只需要给箭头函数加个返回值即可,但这种方式会生成一个完全无用的数组,浪费内存:
const parseChartData = (field: string, data: string[][]) => { let chartData = [[field, 'count']]; data.map((item: any) => { chartData.push([item._id, item._count]); return item; // 也可以return undefined,只要存在return语句就行 }); return chartData; };
3. 用map+数组拼接(更优雅的函数式写法)
既然map是用来转换数组的,不如直接用它生成需要的子数组,再和初始数组拼接,这样更符合map的设计意图,代码也更简洁:
const parseChartData = (field: string, data: string[][]) => { return [[field, 'count'], ...data.map((item: any) => [item._id, item._count])]; };
内容的提问来源于stack exchange,提问作者James Sapam
相关产品推荐
相关产品推荐

