【发布时间】:2021-08-30 22:47:42
【问题描述】:
详情
我正在研究处理多维数组的算法。如果有一个零,那么同一列的元素,但后面的数组也将为零。我希望能够对未归零的项目求和。
Example:
matrix = [[0, 1, 1, 2],
[0, 5, 0, 0],
[2, 0, 3, 3]] --->2, 3, and 3 will not be counted since there is a zero above it.
the output should be: 1+1+2+5 = 9
我目前的工作
function matrixElementsSum(matrix) {
var sum = 0;
for(var i=0;i<matrix.length;i++){
console.log(matrix[i])
for(var j=0;j<=matrix.length;j++){
console.log(matrix[i][j])
if(matrix[i][j] == 0){
console.log(true)
//------------>Here is my problem
}
else {
console.log(false)
}
if(matrix[i][j] !== 0){
sum+=matrix[i][j];
}
}
}
return sum;
}
我想用这个:
matrix[i+1][j] = 0;
但我收到此错误:
TypeError: Cannot read property '1' of undefined
有人可以帮助我理解为什么我的思考过程不起作用以及任何继续的建议吗?
谢谢!
【问题讨论】:
-
你是怎么想到
1+1+2+5 = 9的。你会编辑答案并解释它吗?我的意思是你的预期结果是什么?如何? -
j<=matrix.length没有意义。你的意思是j < matrix[i].length? -
遍历数组索引时,条件应该是
index < array.length,而不是index <= array.length -
当你在最后一行时,你不能做
matrix[i+1][j] = 0;。所以在做之前检查i == matrix.length - 1。 -
@decpk 好的,我编辑了。
标签: javascript algorithm matrix multidimensional-array