Array.filter vs jQuery.filter vs custom Array.where (v9)

Revision 9 of this benchmark created by Bernardo Loureiro on


Description

Testing angularjs filter too.

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js"></script>

Setup

var angularFilter = angular.injector(['ng']).get('$filter')('filter');
    
    // Add array.where implementation
    Array.prototype.where = Array.prototype.where || function(predicate) {
      var results = [],
        len = this.length,
        i = 0;
    
      for (; i < len; i++) {
        var item = this[i];
        if (predicate(item)) {
          results.push(item);
        }
      }
    
      return results;
    };
    
    // Generate test array
    window.array = (function() {
      var arr = [];
      for (var i = 0; i < 100; ++i) {
        arr.push(i);
      }
    
      return arr;
    }());

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery.grep
jQuery.grep(array, function(el) {
  return el % 2 === 0;
});
ready
jQuery.filter
jQuery(array).filter(function(el) {
  return el % 2 === 0;
});
ready
Array.where
array.where(function(el) {
  return el % 2 === 0;
});
ready
Angularjs.filter
angularFilter(array, function(el) {
   return el % 2 === 0;
});
ready

Revisions

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