0

几天前,在我是唯一作者的网站上,我将此代码添加到脚本中:

if (PowerArray[0][0].length < 1);
{
    return false;
}

一切正常。当 PowerArray[0][0] 为“70”时,脚本运行。当 PowerArray 为空时,脚本不会超过上面引用的行。这不再是真的。对于我的生活,我无法弄清楚。我测试了代码的变体,如下所示:

if (PowerArray[0][0].length < 1);
{
    alert(PowerArray[0][0].length);
    return false;
}

并设置 PowerArray[0][0] = "70"。当我运行代码时,我会在文本中收到带有“2”的警报。这是我在脚本中唯一有警报的地方。这是怎么回事,我该如何解决?

注意:预期的行为当然是没有警报,因为“70”的长度为 2,不应该触发 if 的真值。

编辑:1)是的,False第一个块中的是一个错字。它已得到纠正。2) 如果(且仅当)PowerArray[0][0].length 为 0 时,预期的行为是它停止处理。 3) 我之前已将 PowerArray 初始化为空数组,然后复制了一个数组(其中包含可能是空的)进​​入它。

4

4 回答 4

4

您应该从 if 语句中删除分号,它会在那里终止您的语句。是的,当您的 PowerArray 为空时,PowerArray[0][0] 将引发未定义的错误,因此也应该对此进行空检查。

于 2013-07-16T04:46:13.297 回答
3

when PowerArrayis emptyPowerArray[0]给出 undefined 那么你会得到一个错误,PowerArray[0][0]TypeError: Cannot read property '0' of undefined这就是脚本在该行之后也没有运行的原因

if (PowerArray && PowerArray[0] && PowerArray[0][0] && PowerArray[0][0].length < 1)
{
    return false;
}
于 2013-07-16T04:46:05.177 回答
0

尝试这个

   if (PowerArray[0]) {
            if (PowerArray[0][0].length < 1) {
                return False;
            }
        }
于 2013-07-16T04:45:28.653 回答
0

我认为 if 后面的分号是问题所在。我还会检查 PowerArray 是否是有效的二维数组实现。检查此链接以获取想法如何在 JavaScript 中创建二维数组?

首先将其更改为此if (PowerArray[0][0].length < 1)

于 2013-07-16T04:46:27.607 回答