1
为什么这个函数返回undefined?我已经看到了更干净和更好的方法来做到这一点,我知道修改一个这样的数组通常是不好的做法。尽管如此,我不清楚为什么这个例子没有返回15.我已经疯狂地登录了控制台。预先感谢您的禅宗般的新手容忍。简单的递归基函数
的步骤如下我看到他们:
- 通行证在阵列中并给予缺省值为0
- 阵列值被弹出没有第二个参数,这被添加到总
- 递归调用传递新缩短阵列以及当前总数。
- 当数组的长度等于零时,退出条件得到满足并返回总数。
var sumOfArray = function(array, total = 0) {
var temp = 0;
// base case
if (array.length == 0) {
return total;
}
temp += array.pop();
total += temp;
sumOfArray(array, total);
};
console.log('sumOfArray([1, 2, 3, 4, 5]=' + sumOfArray([1, 2, 3, 4, 5]));
你应该*返回递归调用的返回值,否则你不返回任何东西(=未定义)。 – trincot
当然是,谢谢! – adamb