问题:求数组([1, 2, 3])的和
要求:
- 不使用for循环
- 不使用标准库函数
递归
function sum (arr) {
function f (i) {
if (arr.length > i ) {
return arr[i] + f(i+1)
}
return 0
}
return f(0)
}
console.log(sum([1, 2, 3]))
优化采用尾递归
function sum (arr) {
function f (sum, i) {
if (arr.length > i) {
return f(sum + arr[i], i+1)
}
return sum;
}
return f(0, 0)
}
console.logh(sum([1, 2, 3]))