为了账号安全,请及时绑定邮箱和手机立即绑定

使用console.log可以打印出来结果,但是return出去就是undefined

使用console.log可以打印出来结果,但是return出去就是undefined

动漫人物 2018-09-08 11:09:45
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。leetcode的各位相加问题,我的思路是将数字分割然后相加,递归,小于10的数字return出去相关代码        var addDigits = function(num) {            let str = num+=''             let len = str.split('').length;            let numTemp = 0             if(num < 10) {                console.log(num)//2                 return num                              } else {                for (let i =0; i<len;i++) {                     numTemp += parseInt(str.split('')[i], 10)                 }                     addDigits(numTemp)                              }                      };             console.log(addDigits(38)//undefined你期待的结果是什么?实际看到的错误信息又是什么?正确答案应为2,实际上返回出来的是undefined,但是打印出来的也是2
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

递归调用结果没有返回,肯定为undefined;修改为下面的:

var addDigits = function (num) {    let str = num += '';    let len = str.split('').length;    let numTemp = 0;    if (num < 10) return num;    for (let i = 0; i < len; i++) {
        numTemp += parseInt(str.split('')[i], 10);
    }    return addDigits(numTemp);
};


查看完整回答
反对 回复 2018-09-09
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

如果是递归 addDigits 前面少了个 return

查看完整回答
反对 回复 2018-09-09
  • 2 回答
  • 0 关注
  • 2386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信