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のコンソールである以下のスクリーンショットで見ることができます。
...
if (Array.isArray(array[length])) {
return recursion(array[length]);
}
...
P.S.:
を使用することができます。 (少なくともあなたのコードでのやり方とは異なります)。[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