1. public function setMainDrivers(pageId:int, arr:Array, totalCount:int):void 
  2.   {  
  3.    totalMainDriverCount = totalCount;  
  4.    var drivers:Array = [];  
  5.    for each(var d:NPCAvatarVO in arr)  
  6.    {  
  7.     var driver:PlayerAvatar = new PlayerAvatar();  
  8.     var driverObject:Object = JSON.parse(JSON.stringify(driver));  
  9.     for(var dkey:String in driverObject)  
  10.     {  
  11.      driver[dkey] = d[dkey];  
  12.     }  
  13.     drivers.push(driver);  
  14.    }  
  15.    mainDriverPages[getRealPageId(pageId)] = drivers;  
  16.   }  

 

下面是我在csdn上找到的关于for in和for each in 的一些总结

for ..in 语句遍历 对象的动态属性或数组中的元素,并对每个属性或元素执行 statement 。对象属性不按任何特定的顺序保存,因此属性看似以随机的顺序出现。固定属性,例如在类中定义的变量和方法,不能由for..in语 句来枚举。若要获得固定属性列表,请使用 flash.utils 包中的 describeType() 函数。下面的示例使用 for..in 遍历对象 的属性:

 
  
  1. var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};   
  2. for (var prop in myObject)  
  3. {  
  4.     trace("myObject."+prop+" = "+myObject[prop]);   

 

for each ..in 语句遍历集合的项目,并对每个项目执行 statementfor each...in语句 作为 E4X 语言扩展的一部分引入,不仅可以用于 XML 对象,而且可以用于对象和数组。 for each...in语句仅遍历对象的动态属性,而不是固定属性。固定属性是指定义为类定义的一部分的属性。若要使用具有用户自定义类的实例的for each...in语句,则必须声明具有 dynamic 属性的类。 与 for..in 语句不同,for each...in语句将遍历对象属性的值,而不是属性的名称。
下例使用 for each...in遍历对象的属性具有的值

 
  
  1. var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};
  2. for each (var item in myObject)
  3. {
  4. trace(item);
  5. }