-1

我正在尝试解决来自 jshero.net 的挑战。挑战在于:

编写一个函数 sum 来计算二维数组中所有元素的和。sum([[1, 2], [3]]) 应该返回 6。为此,我需要使用嵌套循环。我能想出的最佳解决方案是:

function sum(num){
let mySum= [num.length]
var sum = 0;
for (var i = 0; i > mySum; i++) {
  for (var j = 0; j > mySum; j++) {
    sum =mySum[[i]+[j]];
  }
}
}

但是当我运行代码时,出现以下错误:

sum([[1]]) 不返回 1,而是未定义。

测试错误!更正错误并重新运行测试!

你们有任何想法如何解决这个问题吗?

4

2 回答 2

1

我认为函数应该是这样的:

function sum(arr) {
  let sum = 0;
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr[i].length; j++) {
      sum += arr[i][j];
    }
  }
  return sum;
}
于 2020-06-22T12:19:11.617 回答
0
arr=[[1,2,3,4],5,6,[7,8],9]
var sum=0;
for(var d1 of arr)
  if(d1.length) // undefined if not array||number
    for(var d2 of d1)
      sum+=d2;
  else
    sum+=d1;
// 45
于 2020-06-22T12:21:14.060 回答