in_array vs. $.inArray vs. indexOf() (v3)

Revision 3 of this benchmark created by Nickdouille on


Preparation HTML

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

Setup

function in_array(item, arr) {
      if (!arr) {
        return false;
      } else {
        for (var p = 0; p < arr.length; p++) {
          if (item == arr[p]) {
            return true;
          }
        }
        return false;
      }
    }
    
    function in_array2(needle, haystack) {
      for (var key in haystack)
        if (haystack[key] == needle)
          return true;
    
      return false;
    }
    
    function indexOf(needle, haystack) {
      return haystack.indexOf(needle) > -1;
    }
    
    function indexOf2(needle, haystack) {
      return ~haystack.indexOf(needle);
    }
    
    var arr = [1, 2, 3, 4, 5, "test", "", undefined, null, {},
      true
    ];

Test runner

Ready to run.

Testing in
TestOps/sec
$.inArray
$.inArray(5, arr);
$.inArray(50, arr);
ready
in_array
in_array(5, arr);
in_array(50, arr);
ready
indexOf
indexOf(5, arr);
indexOf(50, arr);
ready
in_array2
in_array2(5, arr);
in_array2(50, arr);
ready
indexOf2
indexOf2(5, arr);
indexOf2(50, arr);
ready

Revisions

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