สมมติว่า เราต้องสร้างฟังก์ชันที่ใช้ตัวเลขและค้นหาผลรวมของตัวเลขซ้ำๆ จนกระทั่งผลรวมเป็นตัวเลขหนึ่งหลัก
ตัวอย่างเช่น −
findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6
ดังนั้นผลลัพธ์ควรเป็น 6.
มาเขียนโค้ดสำหรับฟังก์ชันนี้ findSum() −
ตัวอย่าง
// using 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 หรือไม่ มันถูกย่อให้เล็กสุดแล้วและเราควรส่งคืนและจากฟังก์ชัน มิฉะนั้น เราควรส่งคืนการเรียกไปยังฟังก์ชันที่เรียกซ้ำตัวเลขสุดท้ายจากตัวเลขที่เพิ่มเข้าไปจนกว่าจะน้อยกว่า 10พี>
ผลลัพธ์
ดังนั้นผลลัพธ์ของรหัสนี้จะเป็น −
3