08/09/09 19:54:26 hgoyihFv
>>487
質問ではなく、個人的に意外な結果になったので聞いてみただけっす。すんません。
解答は
var array:Array = [];
array[0] = 0;
trace( array.length ); //1
array[1] = 1;
trace( array.length ); //2
array[-1] = -1;
trace( array.length ); //2
array[0xfffffffe] = 0xfffffffe;
trace( array.length.toString(16) ); // ffffffff
array[0xffffffff] = 0xffffffff;
trace( array.length.toString(16) ); // 0
array[2] = 2;
trace( array.length.toString(16) ); // 3
負の数字がlengthにカウントされない事と0xffffffffでlengthが0になるのに驚いた。常識?
おまけ
for ( var hoge in array ){
if( hoge is String )trace( hoge );
}
// -1
// 4294967294 (0xfffffffe)
// 4294967295 (0xffffffff)
>>488
> lengthはこれら文字列インデックスの数と>>482にあるm_denseArr.lengthの合計値が返される
上記だとarray[-1]してもlengthが増えないので、文字列インデックスとして使われる部分はカウントされないのでは?