> I've solved this issue following:

But....why?!  Just set the length to zero.  No need for all of the
cloning and splicing!
--
T.J. Crowder
tj / crowder software / com

On Jun 23, 8:43 pm, mocambo <[EMAIL PROTECTED]> wrote:
> Thanks for your exhaustive explanation !
>
> I've solved this issue following:
>
> var _myArray = myArray.clone();
>
> _myArray.each( function(content, index) {
>     delete content; myArray.splice(index,1);
>
> });
>
> delete _myArray;
>
> On Jun 23, 10:39 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
> > 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to