我无法看到我在写这篇文章时遇到的错误' transformArray'功能。我试图让它作为一个参数的函数,将它应用于某个数组的每个元素。为什么不返回任何东西?
var array1 = [1,2,3,4,5];
function transformArray (aFunction) {
return function (array) {
return array.forEach(aFunction);
};
}
var halve = transformArray(function (num) {return num/2;});
console.log(halve(array1));
答案 0 :(得分:3)
那是因为Array.forEach
是一个迭代器。它总是返回undefined
。
MDN:
forEach()
为每个数组元素执行一次回调函数; 与every()
和some()
不同,始终返回值undefined 。
您需要的是Array.map
map()
方法使用调用a的结果创建新数组 为此数组中的每个元素提供了函数。
function transformArray (aFunction) {
return function(array) {
return array.map(aFunction);
};
}
(强调我的)