mark一下
//var arr=['a','b','c'];
//var arr=[1,2,3];
//var arr='abc';
var sum=function(a,b){
console.log(a,b)
return a+b;
}
/**
*
* @param {数组} arr
* @param {操作函数} f
* @param {初始值} initvalue
*/
var reduce=function(arr,f,initvalue){
if (!((typeof arr) ==="object") ) {
console.warn("it dose not have reduce")
}
if (arr.length===0 ) {
return initvalue
}
let [head,...tail]=arr;
if(typeof initvalue =="undefined") {
initvalue=head;
let [_head,..._tail]=tail;
head=_head;
tail=_tail;
}
return reduce(tail,f,f(initvalue,head))
};
//my test
reduce(arr,sum)
arr.reduce(sum)