Javascript 获得;“邻居”;在二维数组/网格中直接位于值/节点旁边

Javascript 获得;“邻居”;在二维数组/网格中直接位于值/节点旁边,javascript,arrays,Javascript,Arrays,如何更改此方法,使其不返回角邻域,而只返回正上方、下方、左侧和右侧的邻域 function getNeighbors(nodes, column, row) { var rowLimit = nodes.length - 1; var columnLimit = nodes[0].length - 1; for (let x = Math.max(0, column - 1); x <= Math.min(column + 1, columnLimit); x++

如何更改此方法,使其不返回角邻域,而只返回正上方、下方、左侧和右侧的邻域

function getNeighbors(nodes, column, row) {
    var rowLimit = nodes.length - 1;
    var columnLimit = nodes[0].length - 1;

    for (let x = Math.max(0, column - 1); x <= Math.min(column + 1, columnLimit); x++) {
        for (let y = Math.max(0, row - 1); y <= Math.min(row + 1, rowLimit); y++) {
            if (x !== column || y !== row) {
                board.nodes[column][row].neighbours.push(nodes[x][y]);
            }
        }
    }
}
函数getNeights(节点、列、行){ var rowLimit=nodes.length-1; var columnLimit=节点[0]。长度-1;
对于(设x=Math.max(0,列-1);x

请看下面,如果我的伪代码对您有所帮助,我制作了一个填充字符串的示例2D数组,但这只是为了举例说明逻辑

下面的示例正在查找
节点[2][1]
的直接邻居,在本例中为“c1”,它没有底部

让节点示例=[
[“a0”、“a1”、“a2”],
[“b0”、“b1”、“b2”],
[“c0”、“c1”、“c2”],
]
函数getNeights(节点、列、行){
让邻居=[]
//顶
if(列>0&&节点[列-1][行]){
push(“顶部:+节点[列-1][行]);
}
//底部
if(列log(getneights(nodesExample,2,1))
谢谢!这是一种更好的方法。