【发布时间】:2021-12-29 23:05:21
【问题描述】:
我想检查多个数组的总和是否为零,如果是,则输出是。但只有第一个数组被代码读取。
应该有 3 个输出(真或假),但我只得到 1 个输出
const arr0 = [3];
const arr1 = [4];
const arr2 = [2, 8, -9, 1];
const arr = [arr0, arr1, arr2];
const zeroSum = arr => {
const map = new Map();
let sum = 0;
for(let i = 0; i < arr.length; i++){
sum += arr[i];
if(sum === 0 || map.get(sum)){
return true;
};
map.set(sum, i);
};
return false;
};
console.log(zeroSum(arr));
【问题讨论】:
-
你想要合并在一起的数组的总和,还是只是每个独立数组的总和?
-
每个独立数组的总和仅@Andy
-
关键行是
sum += arr[i]。arr[i]是一个数组,您正在尝试将其添加到 0。您需要遍历arr[i]的元素并将这些元素添加到需要为每个外部循环声明的 sum。 -
@Andy 谢谢,我还在学习数组。到现在我还是没明白。但我会注意你的评论
标签: javascript arrays multidimensional-array checksum