为什么这个函数返回undefined?我已经看到了更清晰,更好的方法来做到这一点,我理解修改像这样的数组通常是不好的做法。尽管如此,我还不清楚为什么这个例子不会返回15.我的控制台记录就像疯了一样。提前感谢您的禅宗新手容忍。
我看到的步骤:
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]));
答案 0 :(得分:1)
嘿,大多数代码上的所有内容都是正确的。你只是在else块和其他一些小东西中错过了一个return语句;我们都去过那里。
var sumOfArray = function(array, total=0) {
var temp = 0;
if (array.length === 0) {
return total;
} else {
temp += array.pop();
total += temp;
return sumOfArray(array, total);
}
}
sumOfArray([1,2,3,4,5])