2016-07-18 18 views
-1

3次元のJavaScript配列の特定の場所からサークルを描いています(私は思う)。私は2つのレベルのforループを使用して描画しています。最初のものは円のx座標を処理し、2番目のものは円のy座標を処理してから、配列の円の色を渡します値)を取得し、それらをx、y、color、radiusの値から描画するCircle関数に渡します。しかし、私のコードは1つを描画するか、配列の3次元を認識しているように見えません。コードは以下の通りである:多次元配列からJavaScriptが正しく描画されない

//define the sequence of lights 
var lightSequence = [[["red",'darkOrange','darkGreen','other'],["red",'darkOrange','darkGreen','other']],[['red',"orange",'darkGreen'],['red',"orange",'darkGreen']],[['darkRed','darkOrange',"green"],['darkRed','darkOrange',"green"]],[['darkRed',"orange",'darkGreen'],['darkRed',"orange",'darkGreen']]]; 
//draw all of the traffic lights from the array 
for (var xMove = 0; xMove < lightSequence[i].length; xMove ++) { 
    console.log(lightSequence[i][xMove]); 
    for (var value = 0; value < lightSequence[i][xMove].length; value ++) { 
     circle(xPos + (radius*(xMove * 2))+ (spacing * (xMove)), startY + (radius*(value * 2)) + (spacing * (value)), radius, lightSequence[i][xMove][value]); 
     console.log([i][xMove][value]); 
    } 
} 

ライトがとても[["red",'darkOrange','darkGreen','other'],["red",'darkOrange','darkGreen','other']]が順番に1つの引き分けで、4灯の2列を描画する必要がありますが、シーケンスのすべてのセクションは思えiによって制御されている順番に行きます1つのライト(アレイの最後のもの)を描くだけですが、なぜか分かりません。 xMoveは配列のx軸を制御し、描画を行い、valueは配列のy軸を制御し、照明を描画します。

+0

フォーマットであると私はJSONでプログラミングではないと私はjavascriptの@Rayでそれを好むので、これはJavaScriptで動作します – Ray

+0

を試してみてください –

答えて

0

私は最終的に私自身の質問に答えることができました。コードがすべての円を描いていない理由は、と書かれている8行目のために、これはあらかじめエラーがスローされていて、for文から抜け出し、最終的なコードは、JSONに

//draw all of the traffic lights from the array 
for (var xMove = 0; xMove < lightSequence[i].length; xMove ++) { 
    console.log('lightSequence[i][xMove]: ' + lightSequence[i][xMove]); 
    for (var value = 0; value < lightSequence[i][xMove].length; value ++) { 
     circle(xPos + (radius*(xMove * 2))+ (spacing * (xMove)), startY + (radius*(value * 2)) + (spacing * (value)), radius, lightSequence[i][xMove][value]); 
     console.log(lightSequence[i][xMove][value]); 
    } 
} 
関連する問題