/* 题目要求:如何确定一个数在一个有序数组中的位置 arr:有序数组 targetNum:目标值 start:查找开始位置 end:查找结束位置*/function search(arr, targetNum, start, end) { let targetIndex = -1 // 拿到中间值,注意用开始、结束位置取中间值,易错用数组长度 const mid = Math.floor((start + end) / 2) // 判断一些边界条件 if(arr[mid] === targetNum) { targetIndex = mid return targetIndex } // 注意:边界条件的判断,也是递归终止条件 if(start >= end) { return targetIndex } if(targetNum < arr[mid]) { return search(arr, targetNum, start, mid - 1) } else { return search(arr, targetNum, mid + 1, end) }}var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]search(arr, 6, 6, arr.length - 1)