Marijn Haverbeke の著書Eloquent JavaScriptを使用して Javascript を勉強していますが、次の例がわかりませんでした。
function reduce(combine, base, array) {
forEach(array, function (element) {
base = combine(base, element);
});
return base;
}
function add(a, b) {
return a + b;
}
function sum(numbers) {
return reduce(add, 0, numbers);
}
このforEach
関数は、彼が本で以前に紹介したもので、次のとおりです。
function forEach(array, action) {
for(var i = 0; i < array.length; i++)
action(array[i]);
}
さて、関数に戻りますが、reduce
私が理解していないのは、sum
関数でto0
として渡される理由です。変じゃない?実行しようとしているとしましょう...最初のループのように見えませんか? 理解できません。base
reduce
sum([1,2,3])
0 = add(0,1)