【发布时间】:2025-12-20 21:50:07
【问题描述】:
我有一个 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] 访问数组中的最后一项时,它告诉我该数组只有一项,而第二项未定义。
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
如您所见,如果我在同一个控制台日志语句中执行所有操作,就会发生这种情况,所以我知道数组没有改变。
这里会发生什么,我完全被难住了。
为清晰起见进行了编辑
【问题讨论】:
-
您能否发布一个链接到一个演示这一点的实时示例,例如jsbin.com?
-
第二次调试时你为什么不这样做:
console.log(my_array,my_array.length, my_array[0], my_array[1]);?在同一事件之后,它来自同一行吗? -
完全放置函数以便我们分析它
-
这看起来就像你一直在搞乱
Array.prototype,或者正在使用一些(写得不好的)库来做到这一点。在这种情况下还有哪些其他脚本在起作用? -
我想这是可能的(我正在使用 Array.prototype)。我正在使用 jQuery FullCalendar 插件。当我进行搜索时,我确实找到了对 Array.prototype.slice.call 的调用,但它们似乎与我尝试访问的数组不在同一个范围内。
标签: javascript arrays