无法访问前一个数组中的索引
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])
}
}
}
我正在尝试将 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])
}
}
}