繁体   English   中英

索引到2D数组时出现JavaScript TypeError

[英]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

我已经在调试器中确认xy是有效的整数(在这种情况下,它们分别是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM