Quickest Loop Through an Object

A little experiment to find the fastest for-loop for an object.

Approx. Results:

ARY-INDEX: “for(var i = 0” -> 13ms

OBJ-INDEX: “for(var i = 0” -> 218ms

OBJ-KEY: “for(var i in” -> 975ms

var len = 1000000;


// ARRAY VERSION
var check = 0;
var ary = [];
for( var i = 0, l = len; i < l; i++ ){
  ary[i] = i;
}

var start = new Date().getTime();
for( var i = 0, l = len; i < l; i++ ){
  check+=ary[i];
}
alert( new Date().getTime() - start, check );
/***********/



/* 1 object lookup per iteration */

// OBJ WITH "FOR(VAR I =" LOOKUP
var check = 0;
var obj = {};
for( var i = 0, l = len; i < l; i++ ){
  obj[i] = i;
}

var start = new Date().getTime();
for( var i = 0, l = len; i < l; i++ ){
  check+=obj[i];
}
alert( new Date().getTime() - start, check );
/***********/


/* 2 object lookups per iteration at least */

// OBJ WITH "FOR(VAR I IN" LOOKUP
var check = 0;
var obj = {};
for( var i = 0, l = len; i < l; i++ ){
  obj[i] = i;
}

var start = new Date().getTime();
for( var i in obj ){
  check+=obj[i];
}
alert( new Date().getTime() - start, check );
/***********/

This entry was posted by Al MacDonald on March 11, 2010 in JavaScript and Performance.

Comments

Author

This entry was posted by Al MacDonald on March 11, 2010 in JavaScript and Performance.

Recent posts from this author

Related on the Bocoup Blog

Advertisement

Twitter

Google+