我正在尝试解决jshero.net的挑战。挑战是:
写一个函数sum,计算出a的所有元素之和 二维数组。 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,但未定义。
测试错误!更正错误,然后重新运行测试!
你们有解决这个问题的想法吗?
答案 0 :(得分: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;
}
答案 1 :(得分: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