Javascript 向控制台返回函数-无日志记录
我很难看出我在编写这个“transformArray”函数时哪里出错了。我试图让它接受一个函数作为参数,将它应用于某个数组的每个元素。为什么它不归还任何东西Javascript 向控制台返回函数-无日志记录,javascript,functional-programming,higher-order-functions,Javascript,Functional Programming,Higher Order Functions,我很难看出我在编写这个“transformArray”函数时哪里出错了。我试图让它接受一个函数作为参数,将它应用于某个数组的每个元素。为什么它不归还任何东西 var array1 = [1,2,3,4,5]; function transformArray (aFunction) { return function (array) { return array.forEach(aFunction); }; } var halve = 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));
这是因为
Array.forEach
是一个迭代器。它总是返回未定义的
forEach()
对每个数组元素执行一次回调函数;
与every()
和some()
不同,总是返回未定义的值
您需要的是Array.map
map()
方法使用调用
在此数组中的每个元素上提供函数
(强调我的)谢谢!它现在工作得很好。我忘了foreach不回来了anything@JessicaO“布莱恩很高兴能帮上忙:)
function transformArray (aFunction) {
return function(array) {
return array.map(aFunction);
};
}