Hi, That's because you're modifying the array's contents within the iterator, which is pretty much a no-no. (You can modify the things each array element points to, but changing the actual content of the array is problematic.) Just glancing at the #_each method in Array (which is what #each calls) in prototype.js would reveal why:
_each: function(iterator) { for (var i = 0, length = this.length; i < length; i++) iterator(this[i]); }, So #each probably isn't the best way to approach this. Even if it were, re-splicing the array every time is also going to be seriously inefficient. The good news is that all you need to do is set the array's length to 0. You can do that directly, or call the tempting Prototype Array#clear method: http://www.prototypejs.org/api/array/clear Setting the array's length automatically deletes any properties that the new length would leave out; see the ECMA spec, Section 15.4: http://www.ecma-international.org/publications/standards/Ecma-262.htm Hope this helps, -- T.J. Crowder tj / crowder software / com On Jun 23, 4:13 am, mocambo <[EMAIL PROTECTED]> wrote: > I'm trying to remove all objects and object references from myArray. > But code below brakes before last iteration - myArray contains still > one element. > > myArray.each( function(content, index) { > delete content; myArray.splice(index,1); > > }); > > Is there any solution, how I can decrease this array inside #each ? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---