检查多维数组中项目旁边的位置

时间:2015-09-02 09:40:47

标签: javascript arrays multidimensional-array

我们说我们有一个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){
   ...
}
...

但我希望有一种更有效的方法来处理这个问题。它需要大量的重复和错误检查。

1 个答案:

答案 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.
        }
});

多亏了这一点,您可以自由定义“旁边”对您来说意味着什么