javascript - 为什么这个匿名函数在 Javascript 中返回 undefined ?

标签 javascript arrays foreach

我正在尝试创建一个 forEach() 函数,它接受一个数组和一个函数,然后对数组的每个元素执行函数操作。但是,当尝试传递下面的匿名函数时,我得到未定义。在阅读了其他一些帖子后,我尝试将 return 添加到 forEach() 函数,但该函数根本不运行,只返回第一个 array[ i] 它接收而不修改它。

function forEach(array, action){
 for(var i = 0; i < array.length; i++)
   action(array[i]);
}

var myArray = [1, 2, 3];
var something = forEach(myArray, function(element){return element++;});
console.log(something)
//undefined

返回未定义

function forEach(array, action){
 for(var i = 0; i < array.length; i++)
   return action(array[i]);
}

var myArray = [1, 2, 3];
var something = forEach(myArray, function(element){return element++;});
console.log(something)
//undefined

返回1

我错过了什么?

(我知道存在 .forEach() 函数,我正在尝试将其作为学习练习)

最佳答案

您的 forEach 函数不会返回任何内容。看起来您正在尝试 map执行。如果是这样,您需要将结果添加到新数组并返回该数组。

function map(array, action) { // Renamed forEach to a more suitable name
  var results = [];
  for (var i = 0; i < array.length; i++) {
    results.push(action(array[i]));
  }
  return results;
}

关于javascript - 为什么这个匿名函数在 Javascript 中返回 undefined ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35020576/

相关文章:

JavaScript 在 forEach() 期间换行元素不起作用

javascript - 为什么 Array.prototype.forEach 设计为跳过未定义的值?

java - 在 Java webapp 中使用 Markdown 需要什么?

javascript - 如何在 throbber/加载过程中隐藏背景

javascript - 多选 jQuery-Dropdown 插件

javascript - 为什么json在不同的应用环境下解析不同?

c++ - 扩展动态分配的数组

arrays - 如何用另一个结构填充 <array> 结构

arrays - 检查模型目标 : expected dense_24 to have shape. 时出错..但在 Keras 中得到了具有形状的数组...

mysql 查询 - 在可样式化的 div 中使用 foreach 回显产品组