有序数组查找某个离目标最近的值

39 阅读1分钟
const arr = [2,3,4,5,6,7];
function getCloseNumber(arr, target){
	let left = 0;
	let right = arr.length-1;
	let mid;
	while(right-left>1){
		mid = Math.floor((left+right)/2);
		if(arr[mid]<target){
			left = mid
		}else{
			right = mid
		}
	}
	return Math.abs(arr[left]-target) > Math.abs(arr[right]-target) ? arr[right] : arr[left]
}