1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| searchArray = function(needle, haystack, case_insensitive) { if (typeof(haystack) === 'undefined' || !haystack.length) return -1;
var high = haystack.length - 1; var low = 0;
case_insensitive = (typeof(case_insensitive) === 'undefined' || case_insensitive) ? true:false; needle = (case_insensitive) ? needle.toLowerCase():needle;
while (low <= high) { mid = parseInt((low + high) / 2) element = (case_insensitive) ? haystack[mid].toLowerCase():haystack[mid]; if (element > needle) { high = mid - 1; } else if (element < needle) { low = mid + 1; } else { return mid; } }
return -1; };
|