我们必须编写一个接受数字的函数,并不断增加其数字,直到结果不是一位数字为止,当我们获得一位数字时,我们将其返回。
用于此的代码非常简单,我们编写了一个递归函数,该函数不断添加数字,直到数字大于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