我被要求定义一个函数reduce,它有三个参数,一个数组,一个未知函数和一个数字,并将数组减少为一个数字
这是我在被要求定义功能之前给出的
reduce([1, 2, 3], function(total, number) {
return total + number;
}, 0); // should return 6
我对这要求我做些什么来完全诚实感到有点无能为力
如果我至少可以获得一些指南,那么感激不尽
这是我的尝试
var reduce = function(array, func, initial){
function func(){
}
for( var i = 0; i < array.length; i++){
func(initial, array[i]);
}
}
答案 0 :(得分:1)
尝试:
function reduce(list, f, acc) {
return list.length ?
reduce(list.slice(1), f, f(acc, list[0])) :
acc;
}
简单。
答案 1 :(得分:0)
您需要确保创建一个总变量,该变量将在每次函数调用后重新定义。你非常接近。试试这个:
var reduce = function(array, func, initial){
var total = initial,
arr_len = array.length;
for(var i = 0; i < arr_len; i++){
total = func(total, array[i]);
}
};