我似乎無法弄清楚這段代碼有什麼問題 - >一直拋出「超出最大調用堆棧大小」的錯誤。Javascript - >如何遞歸添加一個數組數組?
function arrayIntSum(array) {
if (array === []){
return 0;
}
else return array.shift() + arrayIntSum(array);
}
我似乎無法弄清楚這段代碼有什麼問題 - >一直拋出「超出最大調用堆棧大小」的錯誤。Javascript - >如何遞歸添加一個數組數組?
function arrayIntSum(array) {
if (array === []){
return 0;
}
else return array.shift() + arrayIntSum(array);
}
Javascript對象通過引用進行對比。
[]
創建一個新的數組實例,它將永遠不會等於您的變量。
你想檢查length
。
感嘆。是。我不應該錯過這個。感謝您的解釋! –
function arrayIntSum(array) {
if (array.length === 0){
return 0;
}
else return array.shift() + arrayIntSum(array);
}
-1沒有解釋答案 –
你應該這樣檢查: 則爲a.length == 0
你相比用[],是一個 '[]' literal,它有不同的內存空間。和a
有不同的內存空間。所以他們永遠不會平等。所以遞歸交叉限制
你事件試過調試,改變你的條件之前問這裏? -1 for slzyness – DontVoteMeDown
供參考:'array.reduce(function(sum,n){return sum + n;},0);' –
@DontVoteMeDown,你能告訴我應該如何解決這個問題嗎?我只進行了2個月的編程,有時候搞清楚如何進行調試對算法本身而言,與我一樣困惑。 –