function binarySearch(array, n, value) {
let left = 0;
let right = n - 1;
while (left <= right) {
middle = left + ((right - left) >> 1);
if (array[middle] >= value) // 因为是找到最小的等值下标,所以等号放在这里
right = middle - 1;
else
left = middle + 1;
}
if (left < n && array[left] == value)
return left;
return -1;
}
const arr = [1, 2, 2, 3, 4, 4, 6]
console.log(binarySearch(arr, arr.length, 2))