While that may work, I have found that anytime you are looping over an array like this, modifying/deleting items in the array while iterating over it is problematic at best.
I find the best way is to create a new array that holds the id's of the items you want to delete and iterating over this new array and deleting specific items in the original array is best. --- In flexcoders@yahoogroups.com, "Matthew" <fume...@...> wrote: > > I found that reversing the loop, i.e. decrementing thru it solves the > problem. Hope that helps someone. > > --- In flexcoders@yahoogroups.com, "Matthew" <fumeng5@> wrote: > > > > Hi - > > > > I remove an item in an array using splice() and when there's one object > > left in the array, the looping stops. Why is that? My loop is nested within > > another loop but I thought it should iterate over everything first before > > it goes back to the outside loop. Here's my code: > > > > for( var i:int=0; i<dpLength; i++ ){ > > var group:Object = model.groupingColl[i]; > > var children:Array = group.children as Array; > > > > /* if there are 2 items in 'children', the > > first is > > removed fine but then it doesn't iterate > > over the one > > remaining. */ > > for each( var acct:Object in children ){ > > if( acct.selected == true ){ > > children.splice( i,1 ); > > } > > } > > } > > >