【发布时间】:2020-04-14 22:16:10
【问题描述】:
我在 FreeCodeCamp.org 上遇到了这个问题(链接到下面的问题),我想知道是否有人可以帮助我更好地理解为什么在调用 sum([2, 3, 4], 1); 时它等于 2; 我坐下来看了一会儿,但在理解它的工作原理时感到精神上受阻。 简单的开发人员试图理解 Javascript 中的递归。
任何帮助将不胜感激!感谢互联网!
function sum(arr, n) {
if(n <= 0){
return 0;
}else {
return sum(arr, n - 1) + arr[n - 1];
}
}
sum([2, 3, 4], 1) // Returns 2
【问题讨论】:
-
在第一次迭代中,
sum(arr, n - 1)是0,因为n - 1是0。而arr[n - 1]是2。 -
因为您调用
sum时将1 作为n的值,所以它只从数组中挑选第一个元素。 -
相当短的第一次递归以 n==0 结束,并且还返回零加上第一个数组元素,因此 0+2。
标签: javascript recursion