2017-08-04 4 views
-2

私はJavaScriptとこの出くわした上でビデオを見ていた。このjavascriptのゲームコードは何をしていますか?

var matrix = [ 
[0,0,0], 
[0,1,0], 
[1,1,1], 

]; 


matrix.forEach(function(row, y){ 
row.forEach(function(value, x){ 
    console.log(value); 
    if(value != 0){ 
     context.fillStyle = "red"; 
     context.fillRect(x, y, 1, 1); 
     } 

    }); 
}); 

私はどのようにコードの動作のforEachの部分思っていました。行変数が行列配列と等しくなるかどうか、xとy変数はどうなるか私はちょうどそれの周りに私の頭を取得したい。

ありがとうございます。 アッシャー。

+0

行変数は、行列配列内の各配列と等しくなります。コンソールを追加するだけです。どこでもログ()、コンソールを開く(F12を押す)、あなたの質問にすべて回答します – baao

+0

コードが行列をループしています。最初のループはすべての行でループし、その最初のループ内でその行のすべての項目をループするために2番目のループが作成されます。 0以外の値はすべて色で表示され、HTMLキャンバスのコンテキストを使用して画面に表示されます。 –

+0

ウェブ上でソリューションを検索する時間を無駄にしたくない場合は、少なくともあなたの質問に答えるための仕事をした人を尊重し、そのうちの1つを正解としてマークしてください。 – DDRamone

答えて

0

外側のforeachは、これらの行を繰り返し処理します。

内側のforeachはforeachの外側から現在の行のすべての要素を反復処理します。次に、現在の要素の値をコンソールに出力します。ゼロに等しくなければ、赤でピクセルを塗りつぶします(実際には矩形ですが、その面は1ピクセル長いので1ピクセルになります) y座標です。

あなたはxについて疑問に思っている場合は、foreachループでyを指定します。それらの反復カウンタを考慮することができます。したがって、新しい反復が始まるたびに1ずつインクリメントされます。

そこで結論のコードは3×3のサイズの小行列を描画し、マトリックスない0

0

だ各値ペイント画素赤配列の配列です。

したがって、行列[1] = [0,1,0](これは配列です)。

あなたが関数の最初のビットは、row、[2]

[0]、マトリックスfor行列を言っ[1]及びマトリックスれるforEachと言うときは、[*]行列の内容に等しいです。 2番目の部分、xは、行列の番号(0,1,2)です。

それは意味がありますか?

EDIT:

我々は、行列[1] = [0,1,0]

そこで我々はmatrix.forEach(関数(行、y)がある時点で言わなければならないことを知っていることを知っています

行= [0,1,0]、yは1

row.forEach(関数(値、x)はそのためのためにその再度同じ今回

です=行[0]、行[1]と行[2]

valueを行の内容であろう[*]とxforEach関数の数

+0

これは意味がありますが、各ループの2番目の要素は何ですか? (あなたの答えが私に意味をなされるのであなたに尋ねています) – Asher

+0

私は私の答えに2番目の部分を追加しました@アッシャーは私の答えを良くすることができるように質問してください。 –

0

2番目のパラメータは、現在のインデックスであろう要素が配列内で処理されています。

yは行のインデックスになり、xcolumnのインデックスになります。

関連する問題