针对该问题,我受命创建一个模仿reduce方法的函数并进行测试反对以下我应该得到8的答案。
我不知道回调(acc,el,index,arr)部分如何带来“ add”功能。对于(a,b)的2个参数,forEach的参数在哪里起作用?
// function to mimic reduce
function reduce(array, callback, initial) {
if(Array.isArray(array) {
let acc;
if (initial === undefined) {
acc = array[0];
array = array.slice(1);
} else {
acc = initial;
}
array.forEach(function(el, index, arr) {
acc = callback(acc, el, index, arr);
});
return acc;
}
return "The first arg should be an array";
}
// Code to test against reduce function
var nums = [4, 1, 3]
var add = function(a, b) { return a + b;}
reduce(nums, add, 0) // answer is 8
通话时