【AS3.0】forとfor eachの使い分け(自己流)

オブジェクトを取り出しながら回すfor eachが美しいと思っていましたが
どうやらfor eachは順番を保証しないみたいです。

togetter.com

デストラクタや要素数をカウントするような順番の関係ないものにはfor eachを使い、
順番通りに処理してほしいものはforを使うことにします。

あと、for文のリファクタリングについての記事も読んだので
for文、for each文でこれから心がけたい書き方を自分用にメモしておきます。

for

var oldArray:Array = [ obj_1, obj_2, obj_3 ];
var newArray:Array = [];
var length:int = oldArray.length; // 配列の長さは最初にとっておく
var add_obj:int;
for( var i:int = 0; i < length; i++ ) {
  add_obj = oldArray[ i ]; // 要素を何度も呼び出す場合は一時変数に入れる
  trace( add_obj );
  newArray[ i ] = add_obj; // pushを使わなくていいときは使わない
}

for each

var array:Array = [ obj_1, obj_2, obj_3 ];
for each( var obj:Object in array ) {
  obj.destructor();
  obj = null;
}
array.length = 0;
array = null;

参考 第56回 【特別編】配列エレメントすべてをforループで扱う:ActionScript 3.0で始めるオブジェクト指向スクリプティング|gihyo.jp … 技術評論社