array filter: jQuery.each vs jQuery.grep vs for loop (v12)

Revision 12 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

Setup

var largeArray = ["element1", "element2", "element3", "element4", "element5", "element6", "element7", "element8", "element9", "element10", "element11", "element12", "element13", "element14", "element15", "element16", "element17", "element18", "element19", "element20", "element21", "element22", "element23", "element24", "element25", "element26", "element27", "element28", "element29", "element30", "element31", "element32", "element33", "element34", "element35", "element36", "element37", "element38", "element39", "element40", "element41", "element42", "element43", "element44", "element45", "element46", "element47", "element48", "element49", "element50", "element51", "element52", "element53", "element54", "element55", "element56", "element57", "element58", "element59", "element60", "element61", "element62", "element63", "element64", "element65", "element66", "element67", "element68", "element69", "element70", "element71", "element72", "element73", "element74", "element75", "element76", "element77", "element78", "element79", "element80", "element81", "element82", "element83", "element84", "element85", "element86", "element87", "element88", "element89", "element90", "element91", "element92", "element93", "element94", "element95", "element96", "element97", "element98", "element99", "element100"];

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery.grep
var result = jQuery.grep(largeArray, function(element) {
  return (element === 'element10' || element === 'element90');
});
ready
Array.filter
var result = largeArray.filter(function(element) {
  return (element === 'element10' || element === 'element90');
});
ready
jQuery.each
var result = [];

jQuery.each(largeArray, function(index, element) {
  if (element === 'element10' || element === 'element90') {
    result.push(element);
  }
});
ready
Array.forEach
var result = [];

largeArray.forEach(function(element) {
  if (element === 'element10' || element === 'element90') {
    result.push(element);
  }
});
ready
for loop
var result = [],
  element,
  i;

for (i = 0; i < largeArray.length; i++) {
  element = largeArray[i];
  if (element === 'element10' || element === 'element90') {
    result.push(element);
  }
}
ready

Revisions

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