Object iteration

Benchmark created on


Description

Checking ways to iterate objects...

Setup

const obj = Array.from({length: 500}, (a, i) => String.fromCharCode(i+50)).reduce((a, v, i) => {a[v] = i; return a}, {});
function doStuff(key, value){}

Test runner

Ready to run.

Testing in
TestOps/sec
For...in
for(var i in obj){
  if(obj.hasOwnProperty(i)){
  	doStuff(i, obj[i]);
  }
}
ready
For of keys (separate array)
var keys = Object.keys(obj);
for(var k of keys){
  doStuff(k, obj[k]);
}
ready
For of keys (inline array)
for(var k of Object.keys(obj)){
  doStuff(k, obj[k]);
}
ready
For of getOwnPropertyNames (separate array)
var keys = Object.getOwnPropertyNames(obj);
for(var k of keys){
  doStuff(k, obj[k]);
}
ready
For of getOwnPropertyNames (inline array)
for(var k of Object.getOwnPropertyNames(obj)){
  doStuff(k, obj[k]);
}
ready
For of entries (separate array)
var entries = Object.entries(obj);
for(var [k, v] of entries){
  doStuff(k, v);
}
ready
For of entries (inline array)
for(var [k, v] of Object.entries(obj)){
  doStuff(k, v);
}
ready

Revisions

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