【发布时间】:2014-03-13 18:32:53
【问题描述】:
我似乎无法弄清楚在 Eloquent Javascript 第 6 章的练习中包含以下代码块的实际重要性。
编辑:它不是必需的,而是允许从顶层调用它。
function countZeroes(array) {
return count(equals(0), array);
}
这里是完整的代码:
function count(test, array) {
return reduce(function(total, element) {
return total + (test(element) ? 1 : 0);
}, 0, array);
}
function equals(x) {
return function(element) {return x === element;};
}
function countZeroes(array) {
return count(equals(0), array);
}
这是之前的reduce函数:
function reduce(combine, base, array) {
forEach(array, function (element) {
base = combine(base, element);
});
return base;
}
这是前面的 forEach 函数:
function forEach(array, action) {
for (var i = 0; i < array.length; i++)
action(array[i]);
}
我才刚刚开始学习 JavaScript,所以我确信对此有一个简单的解释。谢谢。
【问题讨论】:
-
你问
countZeroes函数的意义是什么?如果您从不调用它,那么您可能不需要它。
标签: javascript function higher-order-functions