我正在处理一些操作二维“单元”对象数组的代码。
function randomDestFromStart(cell, temp)
{
function addPossible(x, y)
{
var test1 = temp[x];
var test2 = test1[y]; // This line
// ... //
}
for (var i = 0; i < temp[0].length; i++)
addPossible(cell.x, i);
// ... //
}
temp
是二维数组,cell
是一个特定的 Cell 对象。定义test2
导致以下错误:
TypeError: test1 is undefined
我已经在调试器中确认x
和y
是有效的整数(在这种特殊情况下,它们分别是 0 和 1)。temp
是由 5 个 Cell 对象子数组组成的有效数组,因此不应出现任何类型的索引越界错误。temp
将一个级别索引为test1
一个有效的 5 个单元格数组(基本上是一行)似乎没有问题temp
。问题是当我索引到数组的第二维时,这很奇怪,因为索引到相同的确切数组在代码的其他部分中起作用。
编辑:问题似乎出在 x 和 y 的输入上。当我对这些值进行硬编码时,一切正常。例如,addPossible(2, 3)
作品。当动态提供值时会发生错误,但这很奇怪,因为即使在这些情况下,调试器也会将 x 和 y 显示为完全正常且有效的整数。我 99% 确定这不是越界问题。我查过了,数组是 5x5,x 和 y 总是在 0 到 4 之间。