Il ciclo for each.. esegue un'iterazione sulle voci di una raccolta, che possono essere tag contenuti in un oggetto XML o XMLList, i valori delle proprietà di un oggetto o gli elementi di un array. Come mostrato nel seguente estratto di codice, potete, ad esempio, utilizzare un ciclo for each..in per eseguire iterazioni sulle proprietà di un oggetto generico, ma a differenza del ciclo for..in, la variabile di iterazione in un ciclo for each..in contiene il valore della proprietà anziché il nome della stessa:
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// output:
// 20
// 30
È possibile eseguire l'iterazione su un oggetto XML o XMLList, come mostra l'esempio seguente:
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
*/
Potete anche eseguire iterazioni sugli elementi di un array, come nel codice seguente:
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// output:
// one
// two
// three
Non è invece possibile eseguire iterazioni sulle proprietà degli oggetti che sono istanze di classi chiuse. Nel caso di classi dinamiche, non è possibile eseguire l'iterazione sulle proprietà fisse, ovvero le proprietà definite nella definizione della classe.