我已經查看了有關堆疊溢位的其他帖子,并且如前所述,我正在嘗試使用遞回查找陣列的總和,如果它是所有數字,即 [2, 6, 11, 4, 13, 5] 它作業正常,但如果在陣列中有字母 ie["a","b","c"] 它在末尾添加一個 0 使“abc0”在回傳回傳后取下 0abcundefined
而不是回傳 0 我嘗試回傳陣列,它適用于["a","b","c"] 版本但在 [2, 6, 11, 4, 13, 5] 中回傳的是 concat 而不是加法。提前感謝您的時間和幫助。=)
function calculateSumRecursion(array) {
console.log(array)
if(array.length === 0 ) return 0
return array[0] calculateSumRecursion(array.slice(1))
}
uj5u.com熱心網友回復:
如果你這么認為,只要有一個元素,你就可以停下來。
function calculateSumRecursion(array) {
// just to improve the basic logic, there can be other cases which can be handled i.e. if the array is empty.
if ( array.length === 1 ) array[0]
return array[0] calculateSumRecursion( array.slice(1) )
}
uj5u.com熱心網友回復:
您可以通過簡單地將停止條件更改為 1 個元素來解決此問題。
function calculateSumRecursion(array) {
if (array.length < 1) throw "Can't calculate a sum of empty array";
if (array.length === 1) return array[0]
return array[0] calculateSumRecursion(array.slice(1))
}
array = [1, 2, 3, 4, 5, 6]
console.log(calculateSumRecursion(array))
array = ["a", "b", "c", "d", "e"]
console.log(calculateSumRecursion(array))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/326803.html
標籤:javascript 递归
下一篇:從動態嵌套陣列生成物件的平面陣列
