[英]JavaScript TypeError when indexing into 2D array
我正在研究处理“单元”对象的2D数组的一些代码。
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
是2d数组, cell
是特定的Cell对象。 定义test2
导致以下错误:
TypeError: test1 is undefined
我已经在调试器中确认x
和y
是有效的整数(在这种情况下,它们分别是0和1)。 temp
是由Cell对象的5个子数组组成的有效数组,因此不应有任何超出范围的索引错误。 由于test1
是5个单元格的有效数组(基本上是temp
的行),因此将一个级别索引到temp
似乎没有问题。 问题是当我索引到数组的第二维时,这很奇怪,因为索引到相同的精确数组可以在代码的其他部分工作。
编辑:问题似乎与x和y的输入有关。 当我对这些值进行硬编码时,一切正常。 例如, addPossible(2, 3)
起作用。 当动态提供值时会发生该错误,但这很奇怪,因为即使在这些情况下,调试器也将x和y显示为完全正常且有效的整数。 我99%确信这不是一个超出范围的问题。 我检查了一下,数组是5x5,x和y总是在0到4之间。
您的临时数组很可能大于cell.x中存在的任何值。 也可能cell.x太大了,而您想要cell.x -1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.