Object keys iteration (v91)

Revision 91 of this benchmark created by Glade on


Description

Testing Object.keys vs for-in. I see that SlickGrid uses objects with indexed keys rather than arrays. Confused....

Preparation HTML

<script>
  var data = {};
  
  for (var i = 0; i < 1000; i++) {
  
   data[i] = i;
  
  }

  function someFn(ix) {
    return ix * 5 + 1 / 3 * 8;
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
for-in
for (var key in data) {
   someFn(data[key]);
}
ready
object-keys
Object.keys(data).forEach(function(element, index, array){
  someFn(data[element]);
});
ready
object-keys 2
var keys = Object.keys(data);
var len = keys.length;
var i = 0;

while (i < len) {
   someFn(data[keys[i]]);
   i++;
}
ready
object-keys 3
var keys = Object.keys(data);
var len = keys.length;
var i;

for (i = 0; i < len; i++) {
  someFn(data[keys[i]]);
}
ready
Keys + cached + backwards while
var keys = Object.keys(data), i = keys.length;

while (i--) {
  someFn(data[keys[i]]);
}
ready
while assign
var keys = Object.keys(data), key = keys.length, entry;
while (entry = keys[--key]) {
  someFn(data[entry]);
}
ready
keys, len, i, backwards
var keys = Object.keys(data);
var len = keys.length;
var i;

for (i = len; i>=0; i--) {
  someFn(data[keys[i]]);
}
ready

Revisions

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