希望通过递归sum()
来解决这个问题。现在,代码可以运行,但我应该多次调用sum()
,并且不应该改变输入数组。
var sum = function(array) {
if(array.length === 0){
return 0;
}
function add(array, i){
console.log(array[i]);
if(i === array.length-1){
return array[i];
}
return array[i] + add(array, i+1);
}
return add(array, 0);
};
sum([1, 2, 3, 4, 5, 6]) //21
function sum(array) { return array.length ? array[0] + sum(array.slice(1)) : 0; }
。 - Bergisum
添加一个额外的可选参数更好(更纯粹):-) - Bergi