Javascript中的递归函数返回未定义

randomguy04

我想创建一个接收数字的函数,该数字将减少为其数字的总和(16减少为7->返回7),直到结果只有一位数字长(326减少为11,然后减少到2->返回2)。

我正在创建如下的递归函数,但是对于长度大于1的数字,它返回undefined。

function digital_root(n) {
   var numStr = (typeof n == "string") ? n : n.toString(); // ensure we will use a string
   //console.log("evaluating " + numStr + "its length is " + numStr.length);
   //now evaluate my base case
   if (numStr.length <= 1){
     console.log("i will return" + numStr)//should return my 1 digit number
     return n; //it doesn't
   }
   else{
     var arr = numStr.split(""); //convert the string into an array
     var reducedArr = arr.reduce(function(a,b){
       return parseInt(a) + parseInt(b);//sum the elements of the array
     });
     digital_root(reducedArr);//send the reduced value back for evaluation
  }
}
digital_root(16)//returns undefined

我已经看到了一些类似的问题,但是它们仅解决代码问题,而不涉及概念。我学习递归的方式是,您有一个评估的基本案例,如果为真,则返回-这将是递归的结尾-如果不是,请继续运行将转换数据的代码。再次发送以进行评估。

如何避免未定义的结果,并且我的递归概念是否正确?

阿玛丹
return digital_root(reducedArr);

returnelse分支中缺少function不执行的Areturn将产生undefined

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript:递归函数返回未定义的现有值

来自分类Dev

Javascript使用Date()返回未定义的递归函数

来自分类Dev

返回未定义数组中随机元素的递归函数

来自分类Dev

在if()函数中承诺在Javascript中返回未定义

来自分类Dev

Javascript函数返回未定义

来自分类Dev

Javascript函数返回始终未定义

来自分类Dev

函数返回未定义的javascript

来自分类Dev

函数返回未定义的javascript

来自分类Dev

Javascript函数返回未定义?

来自分类Dev

多层javascript函数返回“未定义”

来自分类Dev

Javascript函数返回未定义

来自分类Dev

javascript函数的参数返回未定义

来自分类Dev

返回在 Javascript 中返回未定义

来自分类Dev

为什么此递归函数返回未定义?

来自分类Dev

JS函数在递归调用期间返回“未定义”

来自分类Dev

为什么我的递归函数返回未定义?

来自分类Dev

为什么我的递归函数返回“未定义”?

来自分类Dev

函数返回AngularJS中未定义的

来自分类Dev

为什么返回值在我的递归函数中变得未定义?

来自分类Dev

className 在 Javascript 中返回未定义

来自分类Dev

函数中的Javascript未定义数组

来自分类Dev

JavaScript中的未定义函数

来自分类Dev

jQuery中未定义的Javascript函数

来自分类Dev

函数中的变量未定义/Javascript

来自分类Dev

从函数返回未定义

来自分类Dev

函数返回未定义

来自分类Dev

递归提示返回未定义

来自分类Dev

递归复制未定义函数

来自分类Dev

JavaScript函数返回值未定义