我在JavaScript中寫了下面的程序:不理解JavaScript的遞歸程序
function recursiveSum(a) {
sum = 0;
for (i=0;i<a.length; ++i) {
if (typeof a[i] === "number") {
sum += a[i];
} else if (a[i] instanceof Array) {
sum += recursiveSum(a[i]);
}
}
return sum;
}
function arraySum(a) {
// i will be an array, containing integers, strings and/or arrays like itself.
// Sum all the integers you find, anywhere in the nest of arrays.
return recursiveSum(a);
}
而且我想不通的arraySum([[1,2,3],4,5])
is 6爲什麼結果。爲什麼第一個數組之後的元素沒有被處理?
您的'sum' var定義在哪裏?它可能不是本地的功能。 –
我是JavaScript的初學者,並且正在編寫與其他語言相關的代碼。我忘了把'var'放在變量前面,所以我的變量是全局的,就像答案建議的那樣。 –
只要可以,請鍵入「嚴格使用」; 在所有js文件的開頭。它不允許沒有'var'的buggy樣式全局變量。 –