fast-array-filter

JavaScript performance comparison

Test case created by John-David Dalton

Preparation code

<script>
Array.prototype.filter2 = function(
  a, //a function to test each value of the array against. Truthy values will be put into the new array and falsey values will be excluded from the new array
  b, // placeholder
  c, // placeholder 
  d, // placeholder
  e // placeholder
) {
  c = this; // cache the array
  d = []; // array to hold the new values which match the expression
  for (e in c) // for each value in the array, 
    ~~e + '' == e && e >= 0 && // coerce the array position and if valid,
    a.call(b, c[e], +e, c) && // pass the current value into the expression and if truthy,
    d.push(c[e]); // add it to the new array
  
  return d // give back the new array
};
</script>
      
<script>
Benchmark.prototype.setup = function() {
  var array = [];
  array[200] = 'a';
  
  function callback(v) {
    return /\w+/.test(v);
  }

};
</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
native
array.filter(callback);
pending…
custom
array.filter2(callback);
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.

2 Comments

fearphage commented :

Opera Mobile beat the desktops on native.

var me = 'impressed';