函数不会在递归函数中返回第二轮,但如果第一轮符合条件则会执行

时间:2017-04-27 14:28:27

标签: javascript recursion

标题准确描述了我遇到的问题。目前我的代码正在尝试将数字作为字符串,将其拆分为数组,将它们解析为整数然后将它们相加。如果得到的整数多于一个数,那么该函数应该以新的总和再次开始,直到总和为一位数,然后返回它。

function digital_root(n) {

 var sum = ("" + n).split('').map(function(item){return parseInt(item)}).reduce(getSum);

 if (sum.toString().length > 1) {
  digital_root(sum)
 }

 if (sum.toString().length === 1){ return sum}
}

当函数传递16时,它会愉快地返回7,将1和6加在一起。但是,当调用数字根时,将返回undefined。但是当我在console.log时,一切似乎都很好。我错过了什么?

0 个答案:

没有答案