0

この2つのコードの結果が「2,1」である理由を誰かが説明できますか?2つのピースの両方がその結果をどのように返すのかわかりません。

var grid = [["0,0", "1,0", "2,0"],
            ["0,1", "1,1", "2,1"]];
show(grid[1][2]);


var grid = ["0,0", "1,0", "2,0",
            "0,1", "1,1", "2,1"];
show(grid[2 + 1 * 3]);

ありがとう。

4

11 に答える 11

4
// A two-dimensional array is like having a table with rows and columns,
// though the first element always starts with "0" (as opposed to 1)

var grid = [
/* column:  0    , 1    , 2
/* row 0 */["0,0", "1,0", "2,0"],
/* row 1 */["0,1", "1,1", "2,1"]
];
show(grid[1][2]); // row 1, column 2

// This is just a simple array with elements, again the indexes
// start at 0.

/* index:   0    , 1    ,  2   , 3    , 4    , 5    */
var grid = ["0,0", "1,0", "2,0", "0,1", "1,1", "2,1"];
show(grid[2 + 1 * 3]); // order of operations applies so 2+1*3 is actually:
                       // "2+(1*3)" => "2+3" => "5"
                       // so grid[5] = "2,1"
于 2013-01-25T14:11:23.477 に答える
2

Javascript のインデックスは 1 ではなく 0 から始まります。

それでは、分解してみましょう。

grid[1]実際には2番目の配列を指します["0,1", "1,1", "2,1"]

そのgrid[1][2]ため、その配列の 3 番目の値を指します。2,1

2 番目の配列に関しては、アクセスgrid[5]は配列の 6 番目の値を指しています。2,1

于 2013-01-25T14:10:19.697 に答える
1
var grid = [["0,0", "1,0", "2,0"],
            ["0,1", "1,1", "2,1"]];

グリッド[1][2]

配列は 0 から数えます。grid[1]配列の後半も同様で、2 番目の配列grid[1][2]の 3 番目の値です。

var grid = ["0,0", "1,0", "2,0",
        "0,1", "1,1", "2,1"];

グリッド[2 + 1 * 3]

grid[2 + 1 * 3] === grid[5]: 配列の 6 番目の値

于 2013-01-25T14:10:44.133 に答える
0

最初の例では、の値はgrid[1]配列の2番目の項目、つまり配列["0,1", "1,1", "2,1"]であるため、の値はgrid[1][2]その値の3番目の項目、つまり"2,1"

2番目の例では、の値は2 + 1 * 3であり5grid[5]は配列の6番目の要素"2,1"です。

例は、Javascriptで2次元データを処理する2つの異なる方法を示しています。配列を特定のサイズのセグメントと見なす場合、これは、サブ配列がその特定のサイズである配列の配列を持つことに似ています。

于 2013-01-25T14:13:19.140 に答える
0

それの何がそんなに難しいの?

最後の選択は結果として "grid[5]" で、これは "2,1" です。

于 2013-01-25T14:12:28.233 に答える
0

コンマ区切りの値を[&で囲む]と、一種のリストである配列が作成されます。
配列の名前の後に括弧で囲まれた「インデックス」を指定することで、配列内の値にアクセスできます。最初のアイテムはインデックス '0' の下にあり、2 番目のアイテムは '1' の下にあります。

これを行う場合:

show(grid[1][2]);

まず、グリッドの 2 番目の位置にあるものを取得します。おい、配列だ!これで、その 3 番目の値を取得できます。そして、その配列の 3 番目の値は「2,1」です。2 番目のサンプルも同様で、オンザフライでインデックスを計算するだけです。2 + 1*3 = 5 なので、配列の 6 番目の項目は "2,1" です。

于 2013-01-25T14:12:34.210 に答える
0

配列のインデックスが 0 から始まることを見逃していたと思います。最初のケースでは grid[0][0]、2 番目のケースでは grid[0] は "0,0" になり、grid[1] になります。最初のケースの [1] は "1,1" であり、2 番目のケースの grid[1] は "1,0" です (今さら驚きはありませんか?) :)

于 2013-01-25T14:12:36.737 に答える
0

どちらの場合も、指定されたインデックスは文字列「2,1」を指しているためです。

JavaScript 配列は 0 ベースのインデックスを使用するため、インデックス 0 が配列の最初のものであり、インデックス 1 が 2 番目であるということを覚えておいてください。

最初のインデックス[1][2]は、2 番目の配列 (その配列の 3 番目) を指しています。

2 番目には、6 つの要素を持つ 1 つの配列があり、インデックス2 + 1 * 3は 5 に評価されます。これは、配列の 6 番目のものです。

于 2013-01-25T14:09:32.620 に答える
0

どうしたの?最初のケースでは、2D 配列です。2 番目のケースでは、1D 配列です。3 番目の要素の後に入力するだけです (2 番目のケース)。それで全部です

于 2013-01-25T14:10:15.503 に答える
0

最初の関数: show(grid[1][2])2 番目の配列の 3 番目の要素を出力するため、2,1

2番目の2 + 1 * 3 = 5なので、グリッド[5]が表示されます

于 2013-01-25T14:10:16.647 に答える
0
var grid = [["0,0", "1,0", "2,0"],
            ["0,1", "1,1", "2,1"]];
show(grid[1][2]);

配列インデックス位置 常に から始まり0ます。grid二次元配列です。

表示 (グリッド [1] [2]);

grid[1] == ["0,1", "1,1", "2,1"] //2nd element in the grid array .

grid[1][2] = "2,1"; //3rd element in grid[1] .

表示 (グリッド [2 + 1 * 3]) ;

var grid = ["0,0", "1,0", "2,0",
            "0,1", "1,1", "2,1"];

`grid[2+1*3]` == `grid[5]` // 2+1*3=5
 grid[5] = "2,1"

あなたの疑問が解消されることを願っています。

于 2013-01-25T14:16:34.297 に答える