Javascript 将此迭代函数转换为递归函数

Javascript 将此迭代函数转换为递归函数,javascript,recursion,iteration,Javascript,Recursion,Iteration,这是一个用迭代透视图显示输入数字总和的函数: function sumOfDigits(number) { let strNumber = number.toString() let output = 0; for(i=0;i<strNumber.length;i++){ let tmp = parseInt(strNumber[i]) output = output + tmp } return output } // T

这是一个用迭代透视图显示输入数字总和的函数:

function sumOfDigits(number) {
    let strNumber = number.toString()
    let output = 0;
    for(i=0;i<strNumber.length;i++){
      let tmp = parseInt(strNumber[i])
      output = output + tmp
    }
    return output
}

// TEST CASES
console.log(sumOfDigits(512)); // 8
console.log(sumOfDigits(1542)); // 12
console.log(sumOfDigits(5)); // 5
console.log(sumOfDigits(21)); // 3
console.log(sumOfDigits(11111)); // 5
数字(数字)的功能{
设strNumber=number.toString()
设输出=0;

对于(i=0;i我还没有测试它,但是您可以在不转换字符串的情况下尝试以下操作

function sumOfDigits(number) 
{ 

    if (number === 0) {
       return 0; 
    }

    return (number % 10 + sumOfDigits(Math.floor(number / 10))); 
}

确保输入确实是数字格式的

我没有测试它,但是您可以尝试以下操作,而不必强制转换为字符串

function sumOfDigits(number) 
{ 

    if (number === 0) {
       return 0; 
    }

    return (number % 10 + sumOfDigits(Math.floor(number / 10))); 
}

确保输入确实是数字格式的

使用模运算符,可以得到余数(在除数为10的情况下,是最后一个数字),然后添加下一次迭代

数字的函数sumOfDigits(n){
如果(n==0)返回0
返回值(n%10+数字总和(数学下限(n/10)))
}

log(sumOfDigits(512))
使用模运算符,您可以得到余数(在除数为10的情况下,是最后一个数字),然后添加下一次迭代

数字的函数sumOfDigits(n){
如果(n==0)返回0
返回值(n%10+数字总和(数学下限(n/10)))
}
console.log(sumOfDigits(512))
给你

function sumOfDigitsRecursive(number){
    let strNumber = number.toString()
    if(strNumber.length<=0)
       return 0
    return parseInt(strNumber[0])+sumOfDigitsRecursive(strNumber.slice(1,strNumber.length))
}
函数sumOfDigitsRecursive(数字){
设strNumber=number.toString()
如果(strNumber.length给你

function sumOfDigitsRecursive(number){
    let strNumber = number.toString()
    if(strNumber.length<=0)
       return 0
    return parseInt(strNumber[0])+sumOfDigitsRecursive(strNumber.slice(1,strNumber.length))
}
函数sumOfDigitsRecursive(数字){
设strNumber=number.toString()
if(strNumber.length