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

Javascript array showing 2 values in console, only 1 when accessed

本文关键字:显示 访问 1个值 2个值 控制台 Javascript 数组      更新时间:2023-09-26

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

console.log(my_array_of_arrays);

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

这表明两个数组中都有2个元素。

当我访问数组中的最后一项时长度"或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

正如你所看到的,如果我在同一个控制台日志语句中执行这些操作,就会发生这种情况,所以我知道数组没有改变。

这是怎么回事,我完全被难住了。

编辑清晰

我发现在调用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

我想我不能再像以前那样信任游戏机了!

从Chrome控制台

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

我不知道你还能做什么=/