我们说我们有一个2D数组:
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],
]
现在我想检查位置0
旁边的其他array[2][2]
。达到这个目标最好的是什么?
目前,我正在做这样的事情:
if(array[2+1][2] === 0){
...
}
if(array[2][2+1] === 0){
...
}
...
但我希望有一种更有效的方法来处理这个问题。它需要大量的重复和错误检查。
答案 0 :(得分:3)
如果要检查邻域中的所有字段到某个字段,这是执行此操作的最佳方法。
当然,您可以通过定义邻域数组来为此添加一些配置和自动化:
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.
}
});
多亏了这一点,您可以自由定义“旁边”对您来说意味着什么