回复:问一下for...in如何使用呢?
for..in
for..in 循环用于循环访问对象属性或数组元素。例如,可以使用 for..in 循环来循环访问通用对象的属性(不按任何特定的顺序来保存对象的属性,因此属性可能以看似随机的顺序出现):
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + ": " + myObj);
}
// 输出:
// x: 20
// y: 30
还可以循环访问数组中的元素:
var myArray:Array = ["one", "two", "three"];
for (var i:String in myArray)
{
trace(myArray);
}
// 输出:
// one
// two
// three
如果对象是自定义类的一个实例,则除非该类是动态类,否则将无法循环访问该对象的属性。即便对于动态类的实例,也只能循环访问动态添加的属性。
for each..in
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);
}
// 输出:
// 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);
}
/* 输出
Jane
Susan
John
*/
还可以循环访问数组中的元素,如下面的示例所示:
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// 输出:
// one
// two
// three
如果对象是密封类的实例,则您将无法循环访问该对象的属性。即使对于动态类的实例,也无法循环访问任何固定属性(即,作为类定义的一部分定义的属性)。