我正在学习JavaScript的基础知识,并试图编写一个递归函数以将一组整数加在一起。例如,函数参数为1234
,结果应为10
。到目前为止,这就是我所拥有的...
function sumDigits(numbersStr) {
var numToString = numbersStr.toString()
var numArr = numToString.split('').map(Number);
var sum = 0;
// base case
if (numArr.length === 0) {
return sum
}
// recursive case
else {
var popped = numArr.pop();
sum+=popped;
return sumDigits(numArr);
}
}
但是,每当我运行此循环时,都会出现无限循环(我的标签页崩溃)。如果我弹出数组的最后一个元素,将其添加到
sum
变量,然后在缩短的数组上再次调用该函数,那么为什么会出现无限循环?非常感谢! 最佳答案
您的代码中的问题是sumDigits希望获得一个数字,但是在递归中您将数字数组传递给它。
关于javascript - 如何以递归方式对数字求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48893854/