有人能解释一下为什么这两条代码的结果是“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]);
谢谢。
有人能解释一下为什么这两条代码的结果是“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]);
谢谢。
// 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"
Javascript 中的索引从 0 开始,而不是 1。
所以让我们分解一下。
grid[1]
实际上指向第二个数组["0,1", "1,1", "2,1"]
然后grid[1][2]
指向该数组中的第三个值,即2,1
至于第二个数组,访问grid[5]
是指向数组中的第六个值,这也是2,1
var grid = [["0,0", "1,0", "2,0"],
["0,1", "1,1", "2,1"]];
网格[1][2]
数组从 0 开始计数。数组grid[1]
的后半部分也是如此,并且是第二个数组grid[1][2]
中的第三个值。
var grid = ["0,0", "1,0", "2,0",
"0,1", "1,1", "2,1"];
网格[2 + 1 * 3]
grid[2 + 1 * 3] === grid[5]
: 数组中的第 6 个值
因为在这两种情况下,指定的索引都指向字符串“2,1”
请记住,javascript 数组使用从 0 开始的索引,因此索引 0 是数组中的第一个,索引 1 是第二个,依此类推,
在第一个中,索引[1][2]
指向第二个数组,即该数组中的第三个。
在第二个中,您有 1 个包含 6 个事物的数组,并且您的索引2 + 1 * 3
计算为 5,这是数组中的第 6 个事物。
怎么了?在第一种情况下,它是一个二维数组。在第二种情况下,它是一维数组。在第三个元素之后只有一个输入(在第二种情况下)。就这样
第一个函数:show(grid[1][2])
输出第二个数组的第三个元素,所以2,1
对于第二个 2 + 1 * 3 = 5 所以它显示 grid[5]
这有什么难的?
最后一个选择结果是“grid[5]”,这是“2,1”。
[
在&中包含逗号分隔的值]
会创建一个数组,一种列表。
您可以通过在数组名称后的括号中给出“索引”来访问数组中的值。第一项在索引“0”下找到,第二项在“1”下找到,依此类推。
现在,如果你这样做:
show(grid[1][2]);
它首先在网格的第二个位置获取东西。嘿,这是一个数组!所以我们可以得到那个东西的第三个值!该数组的第三个值是“2,1”。第二个样本也一样,它只计算动态索引。2 + 1*3 = 5,所以第六个数组项:“2,1”。
嘿,我想你错过了从 0 开始的数组索引。所以第一种情况下的 grid[0][0] 和第二种情况下的 grid[0] 应该导致“0,0”和 grid[1] [1] 在第一种情况下是“1,1”,而在第二种情况下 grid[1] 是“1,0”(现在不奇怪了?):)
在第一个示例中, 的值grid[1]
是数组中的第二项,即数组["0,1", "1,1", "2,1"]
,因此 的值grid[1][2]
是该值中的第三项,即"2,1"
。
在第二个示例中, 的值2 + 1 * 3
是5
,并且grid[5]
是数组中的第六个元素,即"2,1"
。
这些示例显示了在 Javascript 中处理二维数据的两种不同方式。如果您将数组视为特定大小的段,这类似于拥有一个数组数组,其中子数组具有该特定大小。
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"
我希望它能消除你的疑问。