[ as ] Arrayのlength

例えば以下のようなコードがあったとします。

var tmp:Array = new Array( “a”, “b”, “c”, “d” );
trace( tmp.length );
delete tmp[2];
delete tmp[3];
trace( tmp.length );

さて、2回目のtraceの結果はどうなるでしょうか。


結果は以下のようになります。

4
4

配列の中身は
( “a”, “b”, “c”, “d” )から、
( “a”, “b”, undefined, undefined )に変わります。

これではちょっと困ります。
deleteしたならundefinedなんか残さないで消えてほしいものです。

配列のlengthを変えるにはどうしたらいいんでしょうか。

調べてびっくりしたのですが、配列のlengthを変えるには以下のようにします。

tmp.length = 2;

ええええええぇぇぇぇぇぇぇええええぇぇぇえぇぇえぇぇぇぇっっっっ!!
配列のlengthってアクセス可能なの!?

ぼくはすごくびっくりしました。

これで無事に配列の中身が、
( “a”, “b” )になりました。

めでたしめでたし。

コメントを残す

メールアドレスが公開されることはありません。