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
객체가 봉인 클래스의 인스턴스인 경우 객체의 속성을 반복할 수 없습니다. 동적 클래스의 인스턴스인 경우에도 고정된 모든 속성, 즉 클래스 정의의 일부로 정의된 속성은 반복할 수 없습니다.