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
เป็นจริง-50
และ-7
.. เมื่อมองไปที่วิธีการนี้ก็จะทำการลดลงของ-5
x ผลผลิตเป็นจำนวนบวก-7
35
หรือคุณต้องการให้เห็นเฉพาะเครื่องหมายลบด้วย5
และไม่ใช่7
, แม้แต่สรรพสิ่ง7
ก็เป็นลบเช่นกัน 2) คุณตั้งใจจะจัดการกับตัวเลขซึ่งรวมถึงศูนย์ได้อย่างไร? เช่นนี้จะเป็นศูนย์การลดโดยอัตโนมัติ ดังนั้นยิ่งคุณผ่านจำนวนมากเท่าไหร่โอกาสที่จะเป็นศูนย์ก็จะยิ่งมากขึ้นเท่านั้น ตัวเลือกอื่นจะข้ามศูนย์
.map(Number)
มีความซ้ำซ้อนเนื่องจาก*
โอเปอเรเตอร์จะรวมค่าเป็นตัวเลขต่อไป ;-)