In some cases, yes, it's pure sugar. In some cases, yes, you may notice a speed difference. But only if you're looping through a megaton of items and doing a supermegaton of processing.
In most case, it's effect on performance is not worth mentioning. The main point of it, though, is it's a nice clean way to iterate a collection AND have a new local scope for each iteration of the loop. The closure provided by .each(fn(item, index)) comes in very handy in many cases. Plus: for (var i = 0; i < blah.length; i++) { var item = blah[i]; doSomething(item); } is more verbose than: blah.each(doSomething); And finally, you're right that .each is one of the lesser value-add methods in Enumerable. Certainly .invoke, .collect, etc... are doing more work. But personally I like the "predicate and delegate" patterns - also prevalent in C# and Java (via Generics) - that Enumerable provides with it methods, including each. I've been bitten several times with a for loop that didn't quite work as expected because I, or someone, forgot about the absence of block level scoping in javascript. On Mon, Jun 30, 2008 at 7:10 PM, greenie2600 <[EMAIL PROTECTED]> wrote: > > I often see people using fancy library methods, like Prototype's > Enumerable.each(), to > loop over arrays. > > What's the point of this? Why not just do a standard for loop, like > so: > > for ( var i = 0; i < myArray.length; i++ ) { > // ... > } > > It seems like it'd be faster, since it's working closer to the bare > metal. Am I wrong about this, or is there some other nuance I'm > missing? > > > > -- Ryan Gahl Manager, Senior Software Engineer Nth Penguin, LLC http://www.nthpenguin.com -- WebWidgetry.com / MashupStudio.com Future Home of the World's First Complete Web Platform -- Inquire: 1-920-574-2218 Blog: http://www.someElement.com LinkedIn Profile: http://www.linkedin.com/in/ryangahl --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---