0
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

4 に答える 4

5

空の文字列 andnullundefinedはすべてfalsyであり、条件ステートメントでブール値の false と見なされ、配列には文字列のみが含まれると言うので、次の方法で確認できるはずです。

for(var i:int=0;i<stringArray.length;i++)
{
    if(!stringArray[i])
    {
        trace("Element at "+i+" found empty");
    }
} 
于 2013-02-27T20:26:21.850 に答える
1

undefined特定のインデックスが設定されていないかどうかを確認するには、 と等しいかどうかを確認します。

于 2013-02-27T19:22:26.717 に答える
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;
}
于 2013-02-27T19:22:34.733 に答える
0

結局のところ、エラーは私が提供したコードとは関係なく、私が尋ねた質問とはまったく異なる、away3d ライブラリのビットマップ マテリアルのエラーでした。しかし、とにかく良い答え。

Lars のコメントのおかげで、他のエラーの可能性についても考えてみたところ、それが見つかりました。

于 2013-02-27T20:54:12.807 に答える