for(var i:int=0;i<stringArray.length;i++)
{
if(stringArray[i]==""||stringArray[i]==null)
{
trace("Element at "+i+" found empty");
}
}
我在AS3中有一个字符串数组。现在我想检查索引i
中的特定元素是否未设置,我该怎么做?
错误当未设置的字符串到达时,我得到上面的代码如下 -
RangeError: Error #1125: The index 2 is out of range 2.
答案 0 :(得分:5)
由于空字符串null
和undefined
都是 falsy ,在条件语句中被视为布尔值false,并且您说您的数组只包含字符串,应该能够检查这种方式:
for(var i:int=0;i<stringArray.length;i++)
{
if(!stringArray[i])
{
trace("Element at "+i+" found empty");
}
}
答案 1 :(得分:1)
检查是否与undefined
相等,以查看是否尚未设置某个索引。
答案 2 :(得分:0)
也许这只是添加一个边界条件来检查传递的数组索引是否在范围内, 类似的东西:
function isValidStringInArray(index:int,array:Array):Boolean{
if(index >= 0 && index < array.length) return ((array[index] != null || array[index] != undefined || array[index].length > 0);
else return false;
}
答案 3 :(得分:0)
事实证明,错误与我提供的代码无关,这是在away3d库中的位图素材的错误,这与我问的问题完全不同。但无论如何都是好的答案。
感谢Lars评论,我也想到了错误的其他可能性,并找到了它。