Ello Chaps和Chapesses!
我有一个像这样的Javascript数组:
var tinkerArray = [
[0,0,0],
[0,1,0],
[0,0,0]
];
我的问题是,如何检查每个节点周围的阵列节点...
e.g。从[0,0]
开始,检查[0,1]
和[1,0]
等等
谢谢!
编辑:如果可能的话我想要一个可扩展的解决方案,如果数组是7x7 - 算法仍然有效...:/
答案 0 :(得分:2)
更新
function getSurrounding(arr, i, j) {
var m, n, result = [];
for (m = i - 1; m <= i + 1; m++) {
if (m in arr) {
for (n = j - 1; n <= j + 1; n++) {
if (n in arr[m] && !(m == i && n == j)) {
result.push(arr[m][n]);
}
}
}
}
return result;
}
答案 1 :(得分:1)
如果您只想访问给定i,j
的相邻元素,请访问i-1, j
,i,j-1
,i,j+1
,i+1, j
并确保指标为有效的。
它不是很漂亮,但它有效(假定i
和j
始终是有效的指示):
function neighbours(arr, i, j) {
var n = [];
if((i-1) in arr) {
n.push(arr[i-1][j]);
}
if((j-1) in arr) {
n.push(arr[i][j-1]);
}
if((j+1) in arr) {
n.push(arr[i][j+1]);
}
if((i+1) in arr) {
n.push(arr[i+1][j]);
}
return n;
}
返回包含邻居的新数组。当然,不是回归它们,你可以随心所欲地做任何事情;)