Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm phần tử mảng bằng hàm đệ quy (recursive function) trong JavaScript

Hàm đệ quy tự gọi chính nó với mảng cắt bỏ phần tử đầu (slice(1)), điều kiện dừng khi mảng rỗng.

Ví dụ


function countRecursive(arr) {
    if (arr.length === 0) return 0; // Base case
    return 1 + countRecursive(arr.slice(1)); // Recursive case
}

var marks = [56, 78, 90, 94, 91, 82, 77];
console.log("Mảng:", marks);
console.log("Số phần tử:", countRecursive(marks));

Cách chạy

node demo.js

Kết quả


Mảng: [ 56, 78, 90, 94, 91, 82, 77 ]
Số phần tử: 7

⚠️ Cảnh báo: Đệ quy tạo mảng mới mỗi lần slice(1) - tốn bộ nhớ O(n²), gây stack overflow cho mảng lớn. Chỉ dùng để học tập. Thực tế dùng arr.length.

Tail recursion (tối ưu): JS engine hiện tại chưa tối ưu tail call.