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
와 a입니다 -7
. 이런 식으로 보면 -5
x -7
를 줄여 양수를 산출합니다 35
. 또는가 5
아닌 마이너스 부호 만 보길 7
원합니까, 심지어 7
는 실제로 마이너스이기도합니다. 2) 0을 포함하는 숫자를 어떻게 처리 할 계획입니까? 이것은 자동으로 축소를 제로화하기 때문입니다. 따라서 숫자가 많을수록 제로화 될 가능성이 높습니다. 다른 옵션은 0을 건너 뛰는 것입니다
.map(Number)
*
연산자는 값을 숫자로 강제 변환 하므로 중복 됩니다. ;-)