jQuery array intersect vs native

JavaScript performance comparison

Revision 2 of this test case created

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
 
<script>
Benchmark.prototype.setup = function() {
    var alpha = [1, 2, 3, 4, 5, 6],
        beta = [4, 5, 6, 7, 8, 9],
        result = [];
};
</script>

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
jQuery
$.arrayIntersect = function(a, b)
{
    return $.grep(a, function(i)
    {
        return $.inArray(i, b) > -1;
    });
};

result = $.arrayIntersect(alpha, beta);
pending…
Native
function arrayIntersect(a, b)
{
    return a.filter(function(i)
    {
        return b.indexOf(i) > -1;
    });
}

result = arrayIntersect(alpha, beta);
pending…
Native reduce
 Array.prototype.intersect_safe=function(b)
{
  var ai=0, bi=0;
  var result = new Array();

  while( ai < this.length && bi < b.length )
  {
     if      (this[ai] < b[bi] ){ ai++; }
     else if (this[ai] > b[bi] ){ bi++; }
     else /* they're equal */
     {
       result.push(this[ai]);
       ai++;
       bi++;
     }
  }
  return result;
}
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. Here’s a list of current revisions for this page:

0 comments

Add a comment