只是試圖在陣列中找到總和并且無法弄清楚我的代碼有什么問題,如果你能提供幫助將不勝感激:)
function arraySum(arr, index) {
if (arr.length <= index)
return 0;
return (arraySum(arr, arr.length - 1) arr[arr.length - 1]);
}
我正在嘗試使用遞回找到陣列的總和。我的代碼到底有什么問題:)如果您能提供幫助將不勝感激
ps 索引=0 arr.length =8
uj5u.com熱心網友回復:
首先,在遞回模式中,您需要一個中斷條件。
其次,在遞回的每一步中,您需要做一點作業,然后將其余的傳遞給其他人。
您有休息條件,但您的一小部分作業似乎丟失或未正確完成。
以下是如何做到這一點:
var sum = function(arr, currentIndex) {
if(currentIndex < 0 || currentIndex >= arr.length) return 0;
return arr[currentIndex] sum(arr, currentIndex);
};
//Test it
var arr = [1, 4, 5];
sum(arr, 0);
uj5u.com熱心網友回復:
注意:實作預期目標有更好的方法:

由于這是一個簡單的陣列,如果您只需要 sum,您可以使用 reduce 方法
function sum(arr) {
const reducer = (sum, val) => sum val;
const initialValue = 0;
return arr.reduce(reducer, initialValue);
}
sum([1, 3, 5, 7]); // 16
uj5u.com熱心網友回復:
function findSum(A, N) {
if (N <= 0)
return 0;
return (findSum(A, N - 1) A[N - 1]);
}
let A = [1, 2, 3, 4, 5];
let N = A.length;
document.write(findSum(A,N));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455058.html
標籤:javascript 递归
