Javascript数组在控制台中显示2个值,访问时只显示1个

时间:2011-08-23 11:57:36

标签: javascript arrays

我有一个Javascript数组数组。 当我将数组打印到控制台时,我得到:

console.log(my_array_of_arrays);


Array[2] ->, Array[2] ->,  
0: 678       0: 1168
1: 865       1: 1370
length: 2    length: 2

这表明两个阵列中都有2个项目。

然后当我通过访问“。length”或my_array [1]来访问数组中的最后一项时,它告诉我数组只有1项,第二项是未定义的。

var my_array = my_array_of_arrays[1];
console.log(my_array, my_array.length, my_array[0], my_array[1]);


[1168, 1370], 1, 1168, undefined

正如你所看到的那样,如果我在同一个控制台日志语句中完成所有操作,那么我知道数组没有改变。

这里可能会发生什么,我完全被难过了。

为了清晰而编辑

2 个答案:

答案 0 :(得分:0)

从Chrome控制台

spo = [000,111]
(spo[0] == 000) //true
(spo[1] == 111) //true

我不确定你还能做什么= /

答案 1 :(得分:0)

我发现在我调用console.log()之后,函数my_array [2]没有被设置。 然而,这已经显示出console.log()的一些奇怪的行为 它不一定显示调用时数组的实时值。

例如。

var my_array = [111];
console.log(my_array);
my_array[1] = 222;

打印:

[111, 222]

当我期待它打印时:

[111]

这意味着console.log()并不总是显示调用时实际值的“实时”表示。

但是,如果我访问数组上的属性,它将显示实时值。

示例:

var my_array = [111];
console.log(my_array.length, my_array[1]);
my_array[1] = 222;

按预期打印:

1, undefined

猜猜我不能相信控制台以及我一直以来!