【发布时间】:2020-04-28 02:51:11
【问题描述】:
我不明白这个函数是如何执行的。有人可以向我解释一下吗?我理解第一步:如果
n<=0 然后函数停止执行。
function sum(arr, n) {
if (n <= 0) {
return arr[0];
} else {
return sum(arr, n - 1) + arr[n];
}
}
console.log(sum([2, 3, 4], 1));
为什么结果是 5?我想请人解释一下函数是如何执行的。
【问题讨论】:
-
函数执行两次,n = 1(初始值)和 n = 0。因此它递归地对数组的第 0 和第 1 个元素求和,即 2 + 3 = 5。跨度>
-
sum([2,3,4],1) = sum([2,3,4], 0) + [2,3,4][1] = [2,3,4][0] + [2,3,4][1] = 2 + 3 = 5
标签: javascript function recursion