Timing arrays vs objects

by ryanwheale

HTML

<div id="output"></div>

JavaScript

jQuery(function($) {
  var objs = [],
      arrs = [],
      startTime,
      objTime, arrTime,
      tmpName, tmpCoolness, tmpStrength,
      out = "",
      $output = $('#output'),
      iterations = 1000000;
  
  // populate with dummy data
  for(var i = 0; i < iterations; i++) {
    objs.push({name: "John Doe", coolness: 84, strength: 5});
    arrs.push(["John Doe", 84, 5]);
  }
  
  startTime = new Date();
  
  for(var i = 0; i < iterations; i++) {
    tmpName = objs[i]["name"];
    tmpCoolness = objs[i]["coolness"];
    tmpStrength = objs[i]["strength"];
  }
  
  objTime = new Date();
  
  for(var i = 0; i < iterations; i++) {
    tmpName = arrs[i][0];
    tmpCoolness = arrs[i][1];
    tmpStrength = arrs[i][2];
  }
  
  arrTime = new Date();
  
  out = 'Objects took ' + (objTime - startTime) + "<br />";
  out += 'Arrays took ' + (arrTime - objTime);
  $output.html(out);

});