var nestedArr3 = [[[1,2],[3,4]],[[5,6]]];
function sumTotal() {
var sum = 0;
for (var i = 0; i < nestedArr3.length; i++) {
for (var j = 0; j < nestedArr3[i].length; j++) {
if (typeof nestedArr3[i][j] === "number") {
sum += nestedArr3[i][j];
} else if (Array.isArray(nestedArr3[i][j] === true)) {
sumTotal(nestedArr3[i][j]);
}
}
}
return console.log(sum);
}
console.log(sumTotal());
我得到的结果是0。我不知道如何解决此代码。任何帮助,将不胜感激。
最佳答案
@Jiajie Xu ,如果您正在使用递归来使用此代码来获取和,请不要这样做。我对其进行了更改以使其正常运行。请看一看。
function sumTotal(nestedArr3) {
sum = 0
for(var i = 0; i < nestedArr3.length; i++) {
if(typeof nestedArr3[i] === "number"){
return nestedArr3.reduce((num1, num2) => num1 + num2);
} else
if(Array.isArray(nestedArr3[i]) === true){
sum += sumTotal(nestedArr3[i]);
}
}
return sum
}
// TEST
var nestedArr3 = [[[1,2],[3,4]],[[5,6]]];
console.log(sumTotal(nestedArr3)) // 21