Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript——在迭代时操作多维数组中的值_Javascript_Multidimensional Array - Fatal编程技术网

Javascript——在迭代时操作多维数组中的值

Javascript——在迭代时操作多维数组中的值,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])

给我一个矩阵,对于每一个值为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])             
        } 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;
        }
    }
}