// 二分查找,必须是已排序好的列表 let array = [ 12, 33, 34, 48, 57, 63, 66, 71, 80, 89 ]; function search(arr, item){ let low = 0, high = arr.length - 1; while(low <= high){ // 注意必须包含=,否则会非法数据 // 确定查找范围 let mid = Math.round((low + high)/2); let guess = arr[mid]; if(guess == item){ return mid; } if(guess < item){ low = mid + 1; }else{ high = mid - 1; } } return '非法数据' } console.log(search(array, 48));