JavaScript数组map方法内return正常但外层返回undefined怎么解决
问题原因
- 核心问题是你定义的
myfun函数没有显式返回运算结果:当箭头函数的函数体用大括号{}包裹时,必须手动写return语句指定返回值,否则函数默认返回undefined。你代码里仅执行了data.map操作,没有把map生成的新数组作为myfun的返回值向外传递,所以调用函数得到的结果就是undefined。 - 你在
map回调内部打印能拿到正确值,是因为map的遍历逻辑本身是正常执行的,只是最终生成的结果数组没有被外层函数返回。
修复代码
// 修复方案1:给外层函数加return语句 const myfun = (data) => { return data.map((elem) => { return elem[1] }); }; // 修复方案2:省略外层大括号,使用箭头函数隐式返回的特性简化代码 const myfun = (data) => data.map(elem => elem[1]); let demo = [[1,2,3],[1,2,3]] console.log(myfun(demo)); // 输出 [2, 2],如果需要单独打印2、2可以遍历输出结果数组
内容的提问来源于stack exchange,提问作者geek glance
相关产品推荐
相关产品推荐

