2012-01-30 8 views
2

私はかなり専門的にjavascriptを使い慣れていません。私は2D配列のすべての要素にプログラムでユニークなIDを渡す必要がある状況に遭遇しました。私は以前この質問をしましたが、アレイがどのように構造化されているのかを特定せず、1次元配列に適した答えを受け取ったのは間違いです。私の配列は、以下のように構成されており、アレイ内のすべての要素に一意のIDを作成する方法を知っている素晴らしいことだ:

2D配列内の要素にユニークなIDを与える方法は?

var startRow = Math.floor(scroll.x/alpha.width); 
        var startCol = Math.floor(scroll.y/alpha.height); 
        var rowCount = startRow + Math.floor(canvas.width/alpha.width) + 2; 
        var colCount = startCol + Math.floor(canvas.height/alpha.height) + 2; 

        rowCount = ((startRow + rowCount) > grid.width) ? grid.width : rowCount; 
        colCount = ((startCol + colCount) > grid.height) ? grid.height : colCount; 


        for (var row = startRow; row < rowCount; row++) { 
         for (var col = startCol; col < colCount; col++) { 
          var tilePositionX = alpha.width * row - 25; 
          var tilePositionY = alpha.height * col + 45; 

感謝

をまた、ここで私が受け取った前回の応答は次のとおりです。 JavaScript array id loop

+0

指定したコードには配列がありません(1次元配列または2次元配列はありません)。あなたはどこにidを設定したいですか? –

+0

@BenLee - プログラマチックに配列(rowCount、colCountなど)を作成しているように見えます:) –

答えて

0

あなたの最後の質問と同じように、インデックスを参照するだけでいいのですが、それは完全にユニークです。 2D配列には[i][j]のインデックスがあり、複数の項目で占有することはできません。

var startRow = 0; 
var startCol = 0; 
var rowCount = 10; 
var colCount = 5; 
var someArray = []; 

for (var row = startRow; row < rowCount; row++) { 
    someArray[row] = []; 
    for (var col = startCol; col < colCount; col++) { 
     someArray[row][col] = row + ' ' + col; 
    } 
} 
+0

申し訳ありませんが、配列はtileMapと呼ばれ、var tileMap = [];として設定されています。私はHavvyの反復解を使っていくつかの成功を収めました:for(var ix = 0; ix user1045965

+0

なぜ配列の内容を別の配列に格納する必要があるのか​​混乱しています。アレイ全体の目的は何ですか? –

+0

あなたの時間アラムのためにありがとう、配列は、html5キャンバス上にタイルベースのゲームボードを描画するために使用されるので、配列の構造は、ブラウザのウィンドウで2Dのゲームボードを描画するために使用されています。 IDの理由は、特定のタイル(配列内のセル)の色をデータベースからの色の値を読み取ることによって変更できるようにするためです。 – user1045965

関連する問題