function singleDigit(num) {
let counter = 0
let number = [...num + ''].map(Number).reduce((x, y) => {return x * y})
if(number <= 9){
console.log(number)
}else{
console.log(number)
return singleDigit(number), counter += 1
}
}
singleDigit(39)
上面的代码采用一个整数,并将其乘以自己的数字,将其减少为一位数字。
示例是39。
3 x 9 = 27.
2 x 7 = 14.
1 x 4 = 4.
控制台将记录:
27
14
4
如何跟踪递归函数被调用3次?
我尝试添加一个计数器,但无法更新。希望有帮助
-57
实际上是a -50
和-7
..当以这种方式查看时,它将减少-5
x -7
从而产生正数35
。还是您希望它只看到带有5
而不是的负号7
,甚至7
实际上也就是负的。2)您打算如何处理包含零的数字?因为这将自动将减少量归零。因此,您传入的数字越大,则归零的可能性就越大。另一种选择是跳过零
.map(Number)
这是多余的,因为*
操作员无论如何都将值强制为数字。;-)