递归函数返回undefined,而日志打印期望值。这可能与.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))
}
}
您应该在return
和if
子句中都添加else
语句:
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))
}
}