สมมติว่าเราต้องสร้างฟังก์ชันที่รับตัวเลขและหาผลรวมของหลักๆ แบบ recursive จนกว่าผลรวมจะเป็นตัวเลขหลักเดียว
เช่น
findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6
ผลลัพธ์ควรเป็น 6
เขียนโค้ดฟังก์ชัน findSum()
ตัวอย่าง
// ใช้ recursion
const findSum = (num) => {
if(num < 10){
return num;
}
const lastDigit = num % 10;
const remainingNum = Math.floor(num / 10);
return findSum(lastDigit + findSum(remainingNum));
}
console.log(findSum(2568));
เราตรวจสอบว่าตัวเลขน้อยกว่า 10 หรือไม่ ถ้าใช่ แสดงว่า minified แล้ว ควรคืนค่าและออกจากฟังก์ชัน มิฉะนั้น ควรคืนการเรียกฟังก์ชันที่ recursive หยิบหลักสุดท้ายจากตัวเลข บวกเข้าไปจนกว่าจะน้อยกว่า 10
ผลลัพธ์
ผลลัพธ์ของโค้ดนี้จะเป็น
3