我必須找到陣列的連續元素之間的絕對差之和。但是 sumAbsArr 函式回傳 nun
var arr = [1, 5, 2];
var n = 3;
var cur = 0;
console.log(sumAbsArr(arr, n, cur))
function sumAbsArr(arr, n, cur) {
if (n == cur) {
return 0
}
var abs = Math.abs(arr[cur] - arr[cur 1])
var ans = abs sumAbsArr(arr, n, cur 1)
return ans
}
uj5u.com熱心網友回復:
我認為你在放置條件時是錯誤的。查看 arr[cur 1](第 11 行),當 cur = 3 時,cur 1 超出范圍(arr 索引從 0 開始,以 arr.length-1 結束,即 2)。所以為了防止 arr[cur 1] 有 NaN 值,你必須改變條件
var arr = [1, 5, 2];
var n = 3;
var cur = 0;
console.log(sumAbsArr(arr, n, cur))
function sumAbsArr(arr, n, cur) {
// change the condition to stay within the range
if (cur == n-1) {
return 0
}
var abs = Math.abs(arr[cur] - arr[cur 1])
var ans = abs sumAbsArr(arr, n, cur 1)
return ans
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407187.html
標籤:
