无法访问前一个数组中的索引

cant access index in previous array

我正在尝试将 grid[i][j] 与其正上方的索引进行比较,然后 return 所有不同的值。所以如果 grid[i][j] 与上面的不匹配,代码应该 return grid[i][j].

我认为 [i-1] 可以工作(直接在下方),但我只是收到无法读取未定义属性的错误。

if(grid[i][j] !== grid[i-1][j]){
                        return grid[i][j]
                    }

这里是测试用例:

[["1","0","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"]]

下面是我写的代码:

var numIslands = function(grid) {
        for(let i = 0; i < grid.length; i++){
            for(let j = 0; j < grid.length; j++){
                let ans = 0;
                if(grid[i][j] === '1'){
                    if(grid[i][j] !== grid[i-1][j]){
                        return grid[i][j]
                    }
                }
                
            }
        }
    };

这符合您想要的输出吗?

let x = [                    // Expected Outputs:
  ["1", "0", "1", "1", "0"], // _, 1, 0, _, _
  ["1", "1", "0", "1", "0"], // _, _, _, 0, _
  ["1", "1", "0", "0", "0"], // 0, 0, _, _, _
  ["0", "0", "0", "0", "0"]  // = 1, 0, 0, 0, 0
]
for (let i = 0; i < x.length; i++) {
  let lower = x.slice(i + 1, i + 2)
  for (let j = 0; j < x[0].length; j++) {
    if (!lower.length) {
      continue
    }
    if (lower[0][j] != x[i][j]) {
      console.log(lower[0][j])
    }
  }
}