function bin(arr, val) {
let mid = Math.floor(arr.length / 2)
while (mid >= 0 && mid <= arr.length) {
if (arr[mid] === val) {
return arr[mid]
}
if (arr[mid] > val) {
mid = Math.floor(mid / 2)
}
if (arr[mid] < val) {
mid = Math.floor((arr.length - mid) / 2)
}
}
}
console.log(bin([1, 2, 3, 4, 5, 6, 7, 8, 9,], 7));
Math.floor((arr.length - mid) / 2)
- это что вообще должно делать? Если mid=9, length = 10, вы вообще уйдете в начало массива, хотя должны идти вправо. Если вы хотели взять середину между mid и length, то там должен стоять "+" внутри.