0

エロチャップスとチャペス!

次のようなJavascript配列があります。

var tinkerArray = [
  [0,0,0],
  [0,1,0],
  [0,0,0]
];

私の質問は、各ノードを囲む配列ノードを確認するにはどうすればよいですか...

例: で始まる[0,0]、チェック[0,1]など[1,0]

ありがとう!

編集:可能であれば、配列が7x7の場合、アルゴリズムは引き続き機能するスケーラブルなソリューションが必要です... :/

4

2 に答える 2

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;
}
于 2012-08-31T10:35:39.947 に答える
1

与えられた隣接する要素にアクセスしたいだけの場合は、、、i,jにアクセスし、インデックスが有効であることを確認してください。i-1, ji,j-1i,j+1i+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;
}

これは、隣人を含む新しい配列を返します。もちろん、それらを返す代わりに、好きなことをすることができます;)

于 2012-08-31T10:44:25.933 に答える