array loop vs filter

JavaScript performance comparison

Test case created by

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  var obj = [{ id: 0, num: 20}, { id: 1, num: 20}, { id: 2, num: 20}, { id: 3, num: 20}, { id: 4, num: 20}, { id: 5, num: 20}, { id: 6, num: 20}, { id: 7, num: 20}, { id: 8, num: 20}, { id: 9, num: 20}, { id: 10, num: 20}, { id: 11, num: 20}, { id: 12, num: 20}, { id: 13, num: 20}, { id: 14, num: 20}, { id: 15, num: 20}, { id: 16, num: 20}, { id: 17, num: 20}, { id: 18, num: 20}, { id: 19, num: 20}, { id: 20, num: 50}, { id: 21, num: 50}, { id: 22, num: 50}, { id: 23, num: 50}, { id: 24, num: 50}, { id: 25, num: 50}, { id: 26, num: 50}, { id: 27, num: 50}, { id: 28, num: 50}, { id: 29, num: 50}, { id: 30, num: 50}, { id: 31, num: 50}, { id: 32, num: 50}, { id: 33, num: 50}, { id: 34, num: 50}, { id: 35, num: 50}, { id: 36, num: 50}, { id: 37, num: 50}, { id: 38, num: 50}, { id: 39, num: 50}, { id: 40, num: 50}, { id: 41, num: 50}, { id: 42, num: 50}, { id: 43, num: 50}, { id: 44, num: 50}, { id: 45, num: 50}, { id: 46, num: 50}, { id: 47, num: 50}, { id: 48, num: 50}, { id: 49, num: 50}, { id: 50, num: 80}, { id: 51, num: 80}, { id: 52, num: 80}, { id: 53, num: 80}, { id: 54, num: 80}, { id: 55, num: 80}, { id: 56, num: 80}, { id: 57, num: 80}, { id: 58, num: 80}, { id: 59, num: 80}, { id: 60, num: 80}, { id: 61, num: 80}, { id: 62, num: 80}, { id: 63, num: 80}, { id: 64, num: 80}, { id: 65, num: 80}, { id: 66, num: 80}, { id: 67, num: 80}, { id: 68, num: 80}, { id: 69, num: 80}, { id: 70, num: 80}, { id: 71, num: 80}, { id: 72, num: 80}, { id: 73, num: 80}, { id: 74, num: 80}, { id: 75, num: 80}, { id: 76, num: 80}, { id: 77, num: 80}, { id: 78, num: 80}, { id: 79, num: 80}, { id: 80, num: 100}, { id: 81, num: 100}, { id: 82, num: 100}, { id: 83, num: 100}, { id: 84, num: 100}, { id: 85, num: 100}, { id: 86, num: 100}, { id: 87, num: 100}, { id: 88, num: 100}, { id: 89, num: 100}, { id: 90, num: 100}, { id: 91, num: 100}, { id: 92, num: 100}, { id: 93, num: 100}, { id: 94, num: 100}, { id: 95, num: 100}, { id: 96, num: 100}, { id: 97, num: 100}, { id: 98, num: 100}, { id: 99, num: 100}]

};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
filter
return obj.filter(function (el) {
  el.num === 100
})
pending…
loop
var res = []
  
for (var i = 0, j = obj.length; i !== j; i++) {
  if (obj[i].num === 100) res.push(obj[i])
}

return res
pending…

Compare results of other browsers

Revisions

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

0 Comments