On Fri, Feb 18, 2011 at 8:00 AM, Peter van der Zee <jsment...@qfox.nl>wrote:

> The *only* real perf-wise *reason to cache* the length of the array you're
> iterating *is* for a *live-query* such as dom queries. For regular arrays,
> it really just is not worth the extra variable.
>

That's much too general a statement. With a large enough array of any kind,
it makes a difference. A case in point is my PolyGonzo project, which loops
through polygon arrays with tens of thousands of points.

In PolyGonzo I took one more step and stopped checking the length entirely,
using loops like this:

    for( var element, i = -1;  element = array[++i]; ) {
    }

That made a small but noticeable difference too.

This loop form works because the arrays I'm working with are known to have
no null/false/undefined values. I believe it's the fastest way to loop
forward through an array of that nature.

If you repeat something enough times, small improvements can add up. :-)

Obviously the same goes for something like jquery's $foo.size(); or worse,
> $('#foo').size(). I'm only talking about the length of the array being
> iterated. But that should go without sayin...
>

jQuery's .size() method should never be used at all. It's a relic from the
very first versions of jQuery where the jQuery object was not an array-like
object with a .length property.

Instead of .size(), use the .length property.

-Mike

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/jsmentors@jsmentors.com/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/jsmentors@googlegroups.com/

To unsubscribe from this group, send email to
jsmentors+unsubscr...@googlegroups.com

Reply via email to