gpt4 book ai didi

javascript - 二维数组求和

转载 作者:行者123 更新时间:2023-11-30 09:33:51 24 4
gpt4 key购买 nike

我有一个矩阵:

matrix = [[0, 1, 1, 2],
[0, 5, 0, 0],
[2, 0, 3, 3]]

我需要计算所有不小于 0 的数组元素的总和 所以,在这个例子中 Sum 应该是 = 9

我有这个功能:

function matrixElementsSum(matrix) {
// Write your code here
var Summa =0
for (i = 0; i<4; i++){
var sum =0;
// console.log(matrix[i].length); //4
for(j=0; j<matrix.length; j++){
console.log("Matrix JI "+ matrix[j][i])
sum = sum +matrix[j][i];
if (matrix[j][i-1]!=0){
console.log(matrix[j][i-1])
Summa =Summa+ sum;
}
}
console.log('-----------' +Summa)
console.log("Sum "+sum);
}

return Summa;
}

我想我需要更改 if (matrix[j-1][i]!=0) 但它不起作用

最佳答案

您可以为此使用 reduce() 和内部 forEach() 循环。如果 foreach 循环中的当前元素为零,那么您可以将该元素的索引存储在另一个对象 zero 中,并且您可以使用该对象检查是否有相同的零索引。

var matrix = [
[0, 1, 1, 2],
[0, 5, 0, 0],
[2, 0, 3, 3]
]

var zero = {}
var sum = matrix.reduce(function(r, e, i) {
e.forEach(function(n, j) {
if (n == 0) zero[j] = true;
if (!zero[j]) r += n;
})
return r;
}, 0)

console.log(sum)

关于javascript - 二维数组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44727835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com