从字符串 returns 未定义,Javascript 的数字转换

Numeric conversion from string returns undefined, Javascript

递归函数 returns 未定义,日志打印预期值。这可能与 .map() 或 .reduce() 有关吗?

console.log(parseInt(digital_root(16)))
//Expected: 7
//Actual: NaN
console.log(digital_root(456))
//Expected: 6
//Actual: undefined

function digital_root(n) {
    if(n < 10){
        console.log(n)
        //digital_root(16) --> 16 (expected)
        //digital_root(456) --> 456 (expected)
        return n
    }else{
        digital_root(String(n).split("").map(Number).reduce((a, b) => a + b, 0))
    }
}

您应该在两个 ifelse 子句中添加 return 语句:

function digital_root(n) {
    if(n < 10){
        console.log(n)
        //digital_root(16) --> 16 (expected)
        //digital_root(456) --> 456 (expected)
        return n
    }else{
        return digital_root(String(n).split("").map(Number).reduce((a, b) => a + b, 0))
    }
}