从字符串 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))
}
}
您应该在两个 if
和 else
子句中添加 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))
}
}
递归函数 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))
}
}
您应该在两个 if
和 else
子句中添加 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))
}
}