【发布时间】:2014-04-14 11:50:06
【问题描述】:
我已经尝试了很多方法来让reduce的回调函数可以看到父参数,但是我一定遗漏了一些东西......
// Static
var y = [0, 1, 2, 3, 4, 5, 6, 7].reduce(
function(arr, x){
arr.push(Math.pow(2, x));
return arr},[]);
console.log(y);
// Dynamic
var lambda = function(arr, func) {
return (function(f) { return arr.reduce(function(a, x) {
a.push(f(x));
return a;
}, [])})(func);
}
var y = lambda([0, 1, 2, 3, 4, 5, 6, 7],function(x){return Math.pow(x);});
console.log(y);
输出:
[1, 2, 4, 8, 16, 32, 64, 128]
[NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN]
【问题讨论】:
-
parent parameter是什么意思? -
我想将
func传递给reduce 函数。 -
你不是在
Math.pow(x)中缺少2吗?
标签: javascript callback reduce higher-order-functions