假设我们有一个二维数组:
array = [
[1, 1, 1, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 0, 0, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 0, 1],
]
,现在我想检查位置array[2][2]
旁边的其他0
。实现这一目标的最佳方式是什么?
目前,我正在做这样的事情:
if(array[2+1][2] === 0){
...
}
if(array[2][2+1] === 0){
...
}
...
但是我希望有一个更有效的方法来处理这个问题。它需要大量的重复和错误检查。
如果您想检查某个字段附近的所有字段,这是最好的方法。
当然,你可以通过定义邻域数组来添加一些配置和自动化:
var neighborhoodArray = [[-1,0], [1, 0], [0, -1], [0, 1]];
var x = 2;
var y = 2;
neighborhoodArray.forEach(function(neigh) {
if (array[x+neigh[0]][y+neigh[1]] == 0)
{
// do sth.
}
});
多亏了这个,你可以自由地定义"next to"对你来说意味着什么