繁体   English   中英

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

[英]JavaScript: Use forEach within higher order function to manipulate / add to each element in array Error: undefined return

我试图使用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]

我究竟做错了什么?

您需要从最终函数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)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM