Skip To Main Content

Quickest Loop Through an Object

Posted by Alistair Macdonald

Mar 11 2010

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 );
/***********/

Posted by
Alistair Macdonald
on March 11th, 2010

Tagged in

Comments

We moved off of Disqus for data privacy and consent concerns, and are currently searching for a new commenting tool.

Contact Us

We'd love to hear from you. Get in touch!