Ví dụ về tham số thông qua đệ quy trong JavaScript
Hãy, bằng cách sử dụng đệ quy, lần lượt in ra các phần tử của mảng. Giả sử mảng ban đầu được truyền vào tham số của hàm:
func([1, 2, 3]);
Trước tiên, hãy thử in tất cả các phần tử của mảng lần lượt
mà không dùng đệ quy, sử dụng phương thức
shift:
function func(arr) {
console.log(arr.shift()); // sẽ in ra 1
console.log(arr); // sẽ in ra [2, 3] - mảng đã giảm kích thước
console.log(arr.shift()); // sẽ in ra 2
console.log(arr); // sẽ in ra [3] - mảng đã giảm kích thước
console.log(arr.shift()); // sẽ in ra 3
console.log(arr); // sẽ in ra [] - mảng rỗng
}
func([1, 2, 3]);
Như bạn thấy, phương thức shift cắt
và trả về phần tử đầu tiên của mảng, đồng thời
chính mảng đó bị giảm đi phần tử này.
Bây giờ hãy sử dụng đệ quy:
function func(arr) {
console.log(arr.shift(), arr);
if (arr.length != 0) {
func(arr);
}
}
func([1, 2, 3]);
Thực tế, tất nhiên, cách dễ nhất để duyệt qua các phần tử mảng là sử dụng vòng lặp. Các ví dụ trên chỉ đơn giản minh họa cách hoạt động của đệ quy bằng những ví dụ đơn giản (không thực tế). Các ví dụ ứng dụng đệ quy hữu ích hơn thì đơn giản là phức tạp hơn, chúng ta sẽ phân tích chúng ở phần dưới.
Cho mảng:
let arr = [1, 2, 3, 4, 5];
Sử dụng đệ quy, hãy in các phần tử của mảng này ra console.