for each..in
ループは、XML または XMLList オブジェクトでタグ付けできるコレクションのアイテム、オブジェクトプロパティで保持される値、または配列のエレメントを繰り返し処理します。例えば、次のコードの抜粋に示すように、
for each..in
ループを使用して汎用オブジェクトのプロパティを繰り返し処理できますが、
for..in
ループとは異なり、
for each..in
ループのイテレータ変数にはプロパティの名前の代わりにプロパティによって保持される値が含まれます。
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// output:
// 20
// 30
次の例に示すように、XML または XMLList オブジェクトの繰り返し処理を実行することができます。
var myXML:XML = <users>
<fname>Jane</fname>
<fname>Susan</fname>
<fname>John</fname>
</users>;
for each (var item in myXML.fname)
{
trace(item);
}
/* output
Jane
Susan
John
*/
以下の例が示すように、配列のエレメントの繰り返し処理を実行することもできます。
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// output:
// one
// two
// three
オブジェクトが sealed クラスのインスタンスである場合、そのプロパティの繰り返し処理を実行することはできません。 ダイナミッククラスのインスタンスの場合であっても、クラス定義の一部として定義されるプロパティである固定プロパティの繰り返し処理を実行することはできません。