ฟังก์ชันเรียกตัวเอง (Recursive) กรณีฐาน: อาเรย์ว่าง คืน 0 มิฉะนั้น 1 + เรียกฟังก์ชันต่อกับ slice(1)
ตัวอย่างโค้ด
function countNumberOfElementsUsingRecursive(listOfMarks) {
if (listOfMarks.length == 0) {
return 0;
}
return 1 + countNumberOfElementsUsingRecursive(listOfMarks.slice(1));
}
var listOfMarks = [56, 78, 90, 94, 91, 82, 77];
console.log("The array=");
console.log(listOfMarks);
var numberOfElements = countNumberOfElementsUsingRecursive(listOfMarks);
console.log("The Number of elements = " + numberOfElements);
วิธีรันโปรแกรม
ใช้คำสั่ง node fileName.js (เช่น node demo110.js)
ผลลัพธ์
The array= [ 56, 78, 90, 94, 91, 82, 77 ]
The Number of elements = 7
หมายเหตุ: วิธีนี้ไม่เหมาะสำหรับอาเรย์ใหญ่ เพราะ Call Stack Overflow และสร้างอาเรย์ใหม่ทุกครั้งด้วย slice()