如何检查数组元素是否未设置?

时间:2013-02-27 19:09:25

标签: arrays actionscript-3 flash null

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.

4 个答案:

答案 0 :(得分:5)

由于空字符串nullundefined都是 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评论,我也想到了错误的其他可能性,并找到了它。