我正在尝试创建一个 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/