A instrução
for each..in
itera por meio dos itens de um conjunto, que podem ser tags em um objeto XML ou XMLList, os valores mantidos pelas propriedades do objeto ou os elementos de uma matriz. Por exemplo, como mostra o trecho a seguir, você pode usar uma repetição
for each..in
para iterar por meio das propriedades de um objeto genérico, mas diferentemente da repetição
for..in
, a variável do iterador em uma repetição
for each..in
contém o valor mantido pela propriedade em vez do nome da propriedade:
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// output:
// 20
// 30
Você pode iterar por meio de um objeto XML ou XMLList, como mostra o seguinte exemplo:
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
*/
Também é possível iterar por meio dos elementos de uma matriz, como mostra este exemplo:
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// output:
// one
// two
// three
Você não poderá iterar por meio das propriedades de um objeto se o objeto for uma ocorrência de uma classe selada. Mesmo para ocorrências de classes dinâmicas, não é possível iterar por meio de uma propriedade fixa, que é a propriedade especificada como parte da definição de classe.