Iterating Arrays

The most common way to loop through the elements of an array is with a for loop (for):

var keys = Object.keys(o);   // Get an array of property names for object o
var values = []              // Store matching property values in this array
for(var i = 0; i < keys.length; i++) {  // For each index in the array
    var key = keys[i];                  // Get the key at that index
    values[i] = o[key];                 // Store the value in the values array
}

In nested loops, or other contexts where performance is critical, you may sometimes see this basic array iteration loop optimized so that the array length is only looked up once rather than on each iteration:

for(var i = 0, len = keys.length; i < len; i++) {
   // loop body remains the same
}

These examples assume that the array is dense and that all elements contain valid data. If this is not the case, you should test the array elements before using them. If you want to exclude null, undefined, and nonexistent elements, you can write this:

for(var i = 0; i < a.length; i++) {
    if (a[i] === null || a[i] === undefined) continue;  // Skip null, undefined, 
                                                        // and nonexistent elements
    // loop body here
}

If you only want to skip undefined and nonexistent elements, you might write:

for(var i = 0; i < a.length; i++) {
    if (a[i] === undefined) continue; // Skip undefined + nonexistent elements
    // loop body here
}

Finally, if you only want to skip indexes for which no array element exists but still want to handle existing undefined elements, do this:

for(var i = 0; i < a.length; i++) {
    

Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.