for vs some vs regex vs map

Benchmark created by Guilherme Nascimento on


Setup

var erros = "";
  var erro = ["erro1", "erro2", "erro3", "tempor"];
  var regexList = [/erro1/, /erro2/, /erro3/, /tempor/];
  
  var strErro = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget leo consectetur, condimentum est eu, convallis dolor. Aliquam fringilla et odio a congue. Phasellus accumsan, velit in elementum porttitor, massa mi tristique velit, non molestie tellus nisl et odio. Sed id orci mollis ex egestas semper. Cras diam purus, viverra a arcu non, placerat suscipit sapien. Sed suscipit tincidunt urna, in accumsan lacus suscipit a. Suspendisse ut imperdiet urna, a ultricies ex. Vivamus eu pellentesque risus, vitae suscipit odio. Nam enim leo, auctor nec molestie non, gravida vel felis. In pharetra dolor urna, at mattis lectus finibus in. Praesent sed facilisis diam. Pellentesque ornare luctus placerat. Aenean nisl augue, hendrerit ac metus id, fringilla tempor eros. Aliquam erat volutpat. Quisque feugiat, augue vitae cursus scelerisque, libero sem pellentesque neque, non vehicula urna urna vel justo. Curabitur fringilla finibus fringilla. Curabitur fermentum eros vel massa hendrerit euismod. Curabitur scelerisque ipsum a est egestas, accumsan elementum augue interdum. Duis ex turpis, placerat non tincidunt tincidunt, viverra at lorem. Proin sapien nisi, semper in velit quis, egestas placerat eros. Pellentesque non felis auctor massa rhoncus auctor. Aenean feugiat suscipit ex, eu porttitor neque vestibulum nec. Donec sollicitudin euismod vestibulum. Proin varius, ex ac dignissim cursus, enim ex convallis quam, vel porta ante nisl tempor dui. Pellentesque vel facilisis velit, eget pharetra velit. Nulla fermentum vel turpis vel rutrum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer mattis metus auctor, volutpat justo sed, porta ante. Donec tincidunt rhoncus urna non finibus. Pellentesque ut venenatis nisi. Praesent bibendum est id sapien consequat, a molestie tellus sollicitudin. Donec nec ligula at est lacinia finibus ac id diam. Praesent efficitur diam eu diam porttitor, quis ullamcorper justo consectetur. Suspendisse lectus enim, ornare venenatis ipsum ac, efficitur sollicitudin enim. Sed at enim tempus, vestibulum arcu et, scelerisque dui. Etiam eu malesuada eros, nec rutrum justo. Cras a odio maximus, tristique nisl at, ullamcorper nibh. Nunc quis interdum magna. Ut et eros ac ligula tristique sodales et iaculis justo. Sed aliquet nulla vitae leo scelerisque, non lacinia odio efficitur. Aliquam mauris magna, dictum nec mauris et, congue viverra ligula. Aliquam vestibulum ligula in augue venenatis viverra. Pellentesque in urna at nulla placerat consectetur a eu arcu. Fusce augue mauris, suscipit vel libero eu, vulputate iaculis nunc. Aenean condimentum neque quis urna egestas, ut feugiat ex efficitur. Morbi vitae ante erat. Fusce pretium quam vel purus maximus, ut rutrum mi volutpat. Cras pellentesque aliquam justo, ut maximus lorem consectetur sit amet. Sed nec leo sed magna scelerisque euismod at eget urna.";

Test runner

Ready to run.

Testing in
TestOps/sec
simple for
for (var i = 0, j = erro.length, current; i < j; i++) {
    current = erro[i];

    if (strErro.indexOf(current) !== -1) {
        erros+= current+" ";
    }
}
ready
some+regex
regexList.some(function(current) {
    if (current.test(strErro)) {
        erros += current.toString().replace('/','').replace('/',' ');
    }
});
ready
some
erro.some(function(current) {
    if (strErro.indexOf(current) !== -1) {
        erros += current;
    }
});
ready
map
erro.map(function(current) {
   if (strErro.indexOf(current) !== -1){
      erros += current;
   }
});
ready

Revisions

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

  • Revision 1: published by Guilherme Nascimento on