Javascript——在迭代时操作多维数组中的值
给我一个矩阵,对于每一个值为0的索引,我必须把它正下方的索引也设为0Javascript——在迭代时操作多维数组中的值,javascript,multidimensional-array,Javascript,Multidimensional Array,给我一个矩阵,对于每一个值为0的索引,我必须把它正下方的索引也设为0 for(let i = 0; i < matrix.length; i++) { for(let j = 0; j < matrix[i].length;j++) { //figure out what rooms not 0 if(matrix[i][j] !== 0) { goodRooms.push(matrix[i][j])
for(let i = 0; i < matrix.length; i++) {
for(let j = 0; j < matrix[i].length;j++) {
//figure out what rooms not 0
if(matrix[i][j] !== 0) {
goodRooms.push(matrix[i][j])
} else {
matrix[i + 1][j] = 0;
}
}
}
for(设i=0;i
我一直在找工作
TypeError:无法设置未定义的属性“0”
在
else
语句中,我不知道为什么。将else
更改为
else if(i < matrix.length - 1)
注意:这将在循环到达下一行之前更改下一行。因此,如果第一行包含0值,第二行将在循环访问它之前更改,因此当循环到达它时,该值将已经是0,因此整个列将递归地设置为0。我尝试了它,它将整个矩阵设置为[[0]],但它没有将下面索引处的值设置为0。我找到了它。。我没有使用else if,而是重新排列了代码,让第一个if检查
if(I
@fev3r读取注释部分。如果这不是你想要的结果,那么请告诉我你到底想如何处理这种情况?@fev3r&&matrix[i][j]==0
是多余的。它已经被else所暗示,如果它自己啊好的,我现在明白了。这是我在代码下面处理的reduce函数的一个问题。因为矩阵[I+1]
是未定义的
和j=0
,所以您尝试将属性(未定义的)[0]设置为未定义的对象/数组矩阵[I+1]
。
for(let i = 0; i < matrix.length; i++) {
for(let j = 0; j < matrix[i].length; j++) {
if(matrix[i][j] !== 0) {
goodRooms.push(matrix[i][j]);
} else if(i < matrix.length - 1) {
matrix[i + 1][j] = 0;
}
}
}