jQuery.inArray vs indexOf vs custom (v4)

Revision 4 of this benchmark created on


Preparation HTML

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

Setup

var array_list = [];
    for (var i = 0; i < 1000; i++) {
      array_list[i] = i;
    }
    
    function custom_search(arr, val) {
      for (var i = 0, len = arr.length; i < len; i++) {
        if (arr[i] == val) return i;
      }
      return -1;
    }
    
    function binarySearch(a, value) {
        lo = 0;
        hi = a.length - 1;
        while (lo <= hi) {
            var mid = Math.floor((lo+hi)/2);
            if (a[mid] > value)
                hi = mid - 1;
            else if (a[mid] < value)
                lo = mid + 1;
            else
                return mid;
        }
        return -1;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
indexOf first
array_list.indexOf(0)
ready
indexOf last
array_list.indexOf(999)
ready
$.inArray first
jQuery.inArray(0, array_list)
ready
$.inArray last
jQuery.inArray(999, array_list)
ready
custom first
custom_search(array_list, 0);
ready
custom last
custom_search(array_list, 999);
ready
binary first
binarySearch(array_list, 0);
ready
binary last
binarySearch(array_list, 999);
ready

Revisions

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