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

09-11 13:38