Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
索引到2D数组时出现JavaScript类型错误_Javascript_Arrays - Fatal编程技术网

索引到2D数组时出现JavaScript类型错误

索引到2D数组时出现JavaScript类型错误,javascript,arrays,Javascript,Arrays,我正在编写一些代码,用于处理“单元”对象的二维数组 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++

我正在编写一些代码,用于处理“单元”对象的二维数组

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);

    // ... //
}
我已经在调试器中确认
x
y
是有效的整数(在本例中,它们分别为0和1)
temp
是一个有效数组,由5个子数组单元对象组成,因此不应存在任何类型的索引越界错误。将一个级别索引到
temp
似乎没有问题,因为
test1
是一个由5个单元格组成的有效数组(基本上是一行
temp
)。问题是当我索引到数组的第二维时,这很奇怪,因为索引到同一个精确数组在代码的其他部分工作


编辑:问题似乎出在x和y的输入上。当我硬编码这些值时,一切正常。例如,
addapability(2,3)
起作用。当动态提供值时会发生错误,但这很奇怪,因为即使在这些情况下,调试器也会将x和y显示为完全正常和有效的整数。我99%确信这不是一个不可能的问题。我已经检查过了,数组是5x5,x和y总是在0和4之间。

最有可能的情况是,您的临时数组大于cell.x中存在的任何值。也可能是cell.x太大了,您需要cell.x-1

请显示数组的内容。如果没有看到您试图读取的数据,我们无法告诉您发生了什么。对于迭代循环,您不应该将第一级数组索引硬编码为0吗?“iaddmable定义的最开始插入
console.log(temp)
并告诉我们它会说什么吗?@winterblood数组有点大,无法发布。这是一个5x5的单元格对象数组,我已经通过调试器确认了这一点。如果我们检查
console.log(typeof x)
,会怎么样?是的,结果证明它毕竟是越界的。我一定一直在错误地阅读Firebug,因为我从未看到过一个太大的值。使用
console.log(x)
解决了问题。
TypeError: test1 is undefined