while循环中的未定义变量

时间:2016-08-09 04:32:49

标签: javascript google-apps-script

无法解决为什么我使用以下代码收到此错误: “执行失败:TypeError:无法从未定义读取属性”1“。(第201行,文件”代码“)”

if (variableDate != storageArray[storageCount][1]) {//if dates are equal.
   Logger.log("line 197 executed " + (storageArray[storageCount][1] != 'End'));
   Logger.log(storageArray[storageCount]);
   while (storageArray[storageCount][1] != 'End') {} <-- Line 201 error

第197行的日志返回true,第二个日志返回一个数组。

[16-08-09 14:22:58:428 AEST] line 197 executed true
[16-08-09 14:22:58:428 AEST] [42590.0, Mon Aug 08 00:00:00 GMT+10:00 2016, , , , ]

如果我将storageCount变量更改为整数,则可以正常工作。我无法理解为什么storageCount变量在记录器中工作但在while循环中未定义。

1 个答案:

答案 0 :(得分:0)

该错误意味着:

storageArray[storageCount]

undefined。因此,尝试访问TypeErrorundefined[1]

您还在这里创建了一个可能无限循环:

while (storageArray[storageCount][1] != 'End') {}

所以,即使你没有TypeError,这也只是一个无限循环,因为如果条件是!= 'End',那么它永远不会改变,所以会永远循环。