有人可以解释一下为什么这两段代码的结果是“2,1”吗?我不明白这两件作品是如何返回的。
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]);
感谢。
答案 0 :(得分: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"
答案 1 :(得分:2)
Javascript中的索引从0开始,而不是1。
所以让我们把它分解。
grid[1]
实际指向第二个数组["0,1", "1,1", "2,1"]
然后grid[1][2]
指向该数组中的第三个值,即2,1
对于第二个数组,访问grid[5]
指向数组中的第六个值2,1
答案 2 :(得分:1)
var grid = [["0,0", "1,0", "2,0"],
["0,1", "1,1", "2,1"]];
<强>格[1] [2] 强>
数组从0开始计数。因此grid[1]
是数组的后半部分,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个值
答案 3 :(得分:0)
因为在这两种情况下,指定的索引都指向字符串“2,1”
请记住,javascript数组使用从0开始的索引,因此索引0是数组中的第一个,索引1是第二个,依此类推,
在第一个中,索引[1][2]
指向第二个数组,即该数组中的第三个数组。
在第二个中,你有一个包含6个东西的数组,你的索引2 + 1 * 3
的计算结果为5,这是数组中的第6个东西。
答案 4 :(得分:0)
怎么了?在第一种情况下,它是一个2D阵列。在第二种情况下,它是一维数组。在第3个元素之后只有一个输入(在第二个例子中)。这都是
答案 5 :(得分:0)
第一个函数:show(grid[1][2])
输出第二个数组的第三个元素,所以2,1
对于第二个2 + 1 * 3 = 5,所以它显示了网格[5]
答案 6 :(得分:0)
这有什么困难?
最后选择的结果是“grid [5]”,这是“2,1”。
答案 7 :(得分:0)
在[
&amp;中加上逗号分隔值]
创建一个数组,一种列表
您可以通过在数组名称后面的括号中给出“索引”来访问数组中的值。第一项在索引'0'下找到,第二项在'1'下找到,等等。
现在,如果你这样做:
show(grid[1][2]);
它首先得到了网格的第二个位置。嘿,这是一个阵列!所以我们可以得到那个东西的第三个价值!并且该数组的第三个值是'2,1'。对于第二个样本,它只是在运行时计算索引。 2 + 1 * 3 = 5,所以第六个数组项:“2,1”。
答案 8 :(得分:0)
嘿,我想你错过了从0开始的数组索引。所以第一种情况下的网格[0] [0]和第二种情况下的网格[0]应该得到“0,0”和网格[1] [1]在第一种情况下是“1,1”并且在第二种情况下网格[1]是“1,0”(现在不出意了?):)
答案 9 :(得分:0)
在第一个示例中,grid[1]
的值是数组中的第二项,即数组["0,1", "1,1", "2,1"]
,因此grid[1][2]
的值是该值中的第三项,即"2,1"
。
在第二个示例中,2 + 1 * 3
的值为5
,而grid[5]
是数组中的第六个元素,即"2,1"
。
这些示例显示了在Javascript中处理二维数据的两种不同方法。如果将数组视为特定大小的段,则类似于具有数组的数组,其中子数组具有特定大小。
答案 10 :(得分: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"
我希望它能清除你的怀疑。