我想總結JavaScript中的多維數組的總數,但它不提供正確的值,因爲嵌套數組與總和連接。以下是我的代碼:遞歸總結JavaScript多維數組
var arr = [1, 2, 3, [4, 3], [10, 50], 98, 100];
function recursion(array, length = 0) {
if (array.length === length) return 0;
if (Array.isArray(array[length])) {
recursion(array[length]);
}
console.log(array[length]);
return array[length] + recursion(array, length + 1);
}
console.log(recursion(arr));
錯誤可以在下面的屏幕截圖中看到,它是google chrome的控制檯。
那麼,你必須第一個問題是,JavaScript不支持函數默認參數。 (至少不要以你在代碼中的方式)。請參閱[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters) –
如果遞歸不是需要的話,你可以簡單地用'concat'和'reduce'完成這個:'[] .concat(... arr).reduce((a,b)=> a + b)' –
@StephenThomas注意,'' javascript'確實支持默認參數。 – guest271314