Javascript 从函数中的if语句返回,给出未定义的

Javascript 从函数中的if语句返回,给出未定义的,javascript,if-statement,recursion,Javascript,If Statement,Recursion,我的假设是if语句第一部分中的返回将破坏函数并返回n,但它始终给出未定义的值。如果我使用console.log n,它会给出正确的内容。我错过了什么吗 谢谢大家 function digital_root(n) { if(n.toString().length === 1){ console.log(n) return true; }else{ var digits = (""+n).split(""); thing = digits.reduce((

我的假设是if语句第一部分中的返回将破坏函数并返回n,但它始终给出未定义的值。如果我使用console.log n,它会给出正确的内容。我错过了什么吗

谢谢大家

 function digital_root(n) {
   if(n.toString().length === 1){
    console.log(n)
    return true;
  }else{
    var digits = (""+n).split("");
    thing = digits.reduce((a, b) => Number(a) + Number(b), 0);
    digital_root(thing)
  }
}

digital_root(942)

在递归中不返回,这意味着它将返回未定义的

return digital_root(thing)

因为您的递归没有返回,所以您必须在
else
station中返回一些内容<代码>返回数字_根(thing)就可以了!。。。当然,OP还需要从最里面的函数调用返回
n
(而不是
true
)。太棒了!非常感谢你。我仍在努力掌握Javascript递归。。。