Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Chrome 53
Mac OS X 10.11.6
Other
8 years ago
Test name Executions per second
Array 1200.4 Ops/sec
Object 1192.4 Ops/sec
Sparse Array 1096.4 Ops/sec
Sparse Object 1120.1 Ops/sec
Script Preparation code:
x
 
var LIMIT = 10000;
var ARRAY = [];
var OBJECT = {};
var SPARSE_ARRAY = [];
var SPARSE_OBJECT = {};
for (var i = 0; i < LIMIT; i++) {
  ARRAY[i] = i;
  OBJECT[i] = i;
  if (i % 2 === 0) {
    SPARSE_ARRAY[i] = i;
    SPARSE_OBJECT[i] = i;
  }
}
Tests:
  • Array

     
    var total = 0;
    var target = ARRAY;
    for (var i = 0; i < LIMIT; i++) {
      total += target[i];
    }
    return total;
  • Object

     
    var total = 0;
    var target = OBJECT;
    for (var i = 0; i < LIMIT; i++) {
      total += target[i];
    }
    return total;
  • Sparse Array

     
    var total = 0;
    var target = SPARSE_ARRAY;
    for (var i = 0; i < LIMIT; i++) {
      if (i in target) {
        total += target[i];
      }
    }
    return total;
  • Sparse Object

     
    var total = 0;
    var target = SPARSE_OBJECT;
    for (var i = 0; i < LIMIT; i++) {
      if (i in target) {
        total += target[i];
      }
    }
    return total;