1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| let arr = [1,3,5,7,8,9,10]; function indexOf(arr,key){ let len = arr.length; let i = Math.floor(len / 2); if(arr[i] === key){ return i; } if(len === 1){ return -1; } if(key < arr[i]){ return indexOf(arr.slice(0,i),key); }else{ let result = indexOf(arr.slice(i+1),key); return result === -1 ? result : i + 1 + result; } } console.log(indexOf(arr,11)); console.log(indexOf(arr,5)); console.log(indexOf(arr,7)); console.log(indexOf(arr,9));
|