【发布时间】:2016-03-25 10:08:50
【问题描述】:
我正在尝试将 Javascript 脚本转换为 C#,并且在其中一个 for 循环中偶尔将变量设置为另一个数组 -1 索引的值,即
var newVar = oldVar[index];//But sometimes index = -1
显然 C# 在这里抛出了一个越界错误,但 Javascript 没有,所以我想知道 newVar 是否等于 oldVar[0] 或 'undefined'。
有问题的实际代码是这样的
feature[k].px[q] = orig_feature[k].px[q] * 4 + orig_feature[k].py[q] * step[orig_feature[k].pz[q]];
但是在最后设置'step'的索引时,orig_feature[k].pz[q]有时等于-1
【问题讨论】:
-
如果您尝试以您正在做的方式访问具有未定义索引的数组,
newVar将是undefined,它不会抛出错误。您可以自己轻松测试 -> jsfiddle.net/adeneo/0r6mpk7m -
这很容易自己测试。只需在控制台中输入
[][-1]。 -
或
var a=[];a[-1]=42; a[-1](将显示 42)...首先让 JavaScript 以您期望的方式运行可能比转换为 C# 更好。 -
好的,在这种情况下,关于我发布的实际代码 feature[k].px[q] 有时可能会以 NaN 值结束,对吧?所以我想这不会导致任何错误,因为如果你执行 NaN
标签: javascript c# arrays indexoutofrangeexception