looping fastest (v3)

Revision 3 of this benchmark created by looping on


Description

check what loops the fastests

Preparation HTML

<script>
  var nothing = {};
  
  var a = {
   "a": true
  };
  var b = {
   "a": true,
   "b": false
  };
  var c = {
   "a": true,
   "b": false,
   "c": false
  };
  var d = {
   "a": true,
   "b": false,
   "c": false,
   "d": false
  };
  var e = {
   "a": true,
   "b": false,
   "c": false,
   "d": false,
   "e": false
  };
  var j = ["a", "b", "c", "d", "e"];
  var jl = j.length;
  var i;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
for in 1 element
for (i in a) {
 delete a[i];
 a[i] = "gifted";
}
ready
for in 2 elements
for (i in b) {
 delete b[i];
 b[i] = "gifted";
}
ready
for in 3 elements
for (i in c) {
 delete c[i];
 c[i] = "gifted";
}
ready
for in 4 elements
for (i in d) {
 delete d[i];
 d[i] = "gifted";
}
ready
for in 5 elements
for (i in e) {
 delete e[i];
 e[i] = "gifted";
}
ready
for loop 1 element
for (i = 0; i < jl; i++) {
 if (a[i] !== undefined) {
  delete a[i];
  a[i] = "gifted";
 }
}
ready
for loop 2 element
for (i = 0; i < jl; i++) {
 if (b[i] !== undefined) {
  delete b[i];
  b[i] = "gifted";
 }
}
ready
hasownproperty 1 element
for (i in a) {
 if (a.hasOwnProperty(i)) {
  delete a[i];
  a[i] = "gifted";
 }
}
ready
for in 0 elements
for (i in nothing) {
 delete nothing[i];
 nothing[i] = "gifted";
}
ready
for loop 0 elements
for (i = 0; i < jl; i++) {
 if (nothing[i] !== undefined) {
  delete nothing[i];
  nothing[i] = "gifted";
 }
}
ready

Revisions

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