Computer >> Máy Tính >  >> Lập trình >> Javascript

Phiên bản sửa đổi của tính tổng một mảng với đệ quy trong JavaScript

Giả sử, chúng ta bắt buộc phải viết một hàm đệ quy tính tổng tất cả các phần tử của một mảng Số nhưng có một điểm xoắn và khúc quanh là hàm đệ quy chúng ta viết không thể khởi tạo biến anyextra (bộ nhớ).

Giống như chúng ta không thể sử dụng một biến để lưu trữ tổng hoặc để giữ số lượng chỉ số của mảng, nó có nghĩa là sử dụng những gì chúng ta đã có.

Đây là giải pháp -

Chúng ta đã có một mảng và có thể sử dụng phần tử đầu tiên của nó (tức là phần tử ở chỉ số 0 để chứa tổng đệ quy).

Cách tiếp cận là chúng tôi liên tục bật một phần tử từ mảng và thêm nó vào phần tử đầu tiên của mảng cho đến khi chúng tôi chỉ còn lại một phần tử.

Khi chúng ta chỉ còn lại một phần tử, nó sẽ là tổng tích lũy của mảng và chúng ta trả về phần tử đó. Mã cho cách tiếp cận này sẽ là -

Ví dụ

const recursiveSum = arr => {
   if(arr.length > 1){
      arr[0] += arr.pop();
      return recursiveSum(arr);
   };
   return arr[0];
};
console.log(recursiveSum([1,2,3,4]));
console.log(recursiveSum([1,2,3,4,3,6,3,32,7,9,5]));
console.log(recursiveSum([]));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

10
75
undefined