JavaScript:在高阶函数中使用 forEach 来操作/添加到数组中的每个元素错误

我正在尝试使用 forEach 向数组中的每个元素添加 10。但是当我推送然后返回我的新数组时,它会返回未定义的数组。


下面是我的代码:


const array = [1, 2, 3];


function changeArray(array, inputFunc) {


  //console.log(array)


  let output = [];


  array.forEach((ele) => {

    return output.push(ele + 10);

  });

}


changeArray(array)

预期回报:[11, 12, 13]


我究竟做错了什么?


大话西游666
浏览 186回答 1
1回答

慕莱坞森

您需要return output从最终函数开始 -forEach不返回任何内容,并且不会对传递的回调内部的返回值执行任何操作。const array = [1, 2, 3];function changeArray(array, inputFunc) {  let output = [];  array.forEach((ele) => {    output.push(ele + 10);  });    return output;  }console.log(changeArray(array));您还可以使用map更简洁的代码:const array = [1, 2, 3];function changeArray(array, inputFunc) {  return array.map(e => e + 10);  }console.log(changeArray(array));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript