function plusD(n) {

   if (n > 9) {
      let varies = 0;
      let NewN = n.toString().split('');
      console.log(NewN)
      for (let i = 0; i < NewN.length; i++) {
         varies = varies + parseInt(NewN[i])
      }

      if (varies > 9) {
         plusD(varies)
      }
      return varies;
   }
}


如您所见,最后还有一个额外的if语句,当true再次调用plusD函数时,会导致数字的另一个加法;或者,如果结果为false(仅当数字成功地减少到一位数字时),返回数字。

最佳答案

您缺少return。否则,将永远不会考虑函数的返回值。



function plusD(n) {

   if (n > 9) {
      let varies = 0;
      let NewN = n.toString().split('');
      console.log(NewN)
      for (let i = 0; i < NewN.length; i++) {
         varies = varies + parseInt(NewN[i])
      }

      if (varies > 9) {
         return plusD(varies)
      }
      return varies;
   }
}

console.log(plusD(29));

关于javascript - 为什么我的函数不能将数字减少到一位数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60418435/

10-09 22:39