array vs object (v15)

Revision 15 of this benchmark created on


Setup

var arr = [],
      i,
      obj = {};
      for(i = 0; i < 100; i = i + 1) {
        var item = {index: i};
        arr.push(item);
        obj[i] = item;
      }

Test runner

Ready to run.

Testing in
TestOps/sec
array
for (var x=0; x<arr.length; x++) {
    i = arr[x].index;
}
ready
object
for (var x=0; x<100; x++) {
    i = obj[x].index;
}
ready
object unknown length descending
var keys = Object.keys(obj);
var len = keys.length - 1;
for (len; len >= 0; len -= 1){
  i = obj[keys[len]].index;
}
 
ready
array descending
for (var len = arr.length - 1; len >= 0; len -= 1) {
    i = arr[len].index;
}
ready
object 2
var len = arr.length;
for (var x = 0; x < len; x += 1) {
    i = obj[x].index;
}
 
ready
object descending
for (var x = 99; x >= 0; x -= 1) {
    i = obj[x].index;
}
 
ready
object unknown length ascending
var keys = Object.keys(obj);
var len = keys.length;
for (var x = 0; x < len; x += 1){
  i = obj[keys[x]].index;
}
 
ready
object 2 descending
var len = arr.length - 1;
for (len; len >= 0; len -= 1) {
    i = obj[len].index;
}
 
ready
object key in obj
for (key in obj) {
obj[key].index
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.