将数字总和递归减少到一位数字JavaScript

我们必须编写一个接受数字的函数,并不断增加其数字,直到结果不是一位数字为止,当我们获得一位数字时,我们将其返回。

用于此的代码非常简单,我们编写了一个递归函数,该函数不断添加数字,直到数字大于9或小于-9(我们将分别处理符号,因此不必重复编写逻辑)

示例

const sumRecursively = (n, isNegative = n < 0) => {
   n = Math.abs(n);
   if(n > 9){
      return sumRecursively(parseInt(String(n).split("").reduce((acc,val) => {
         return acc + +val;
      }, 0)), isNegative);
   }
   return !isNegative ? n : n*-1;
};
console.log(sumRecursively(88));
console.log(sumRecursively(18));
console.log(sumRecursively(-345));
console.log(sumRecursively(6565));

输出结果

控制台中的输出将为-

7
9
-3
4