编程题

100 阅读1分钟

1.二分查找有序数组

let a = [1, 2, 3, 7, 12, 25, 33, 54];
function find (arr,val){
    let start = 0;
    let end = arr.length-1;
    while(start<=end){
        let mid = parseInt((start+end)/2)
        if(arr[mid]>val){
            end = mid
        }else if(arr[mid]<val){
            start = mid
        }else{
            return mid
        }
    }
    return -1
}
find(a, 3) // 2

2.数组去重

let arr= [1, 2, 3, 4, 2, 8, 1, 5]
function removeDup(arr){
  return [...new Set(arr)]
}
removeDup(arr) //  [1, 2, 3, 4, 8, 5]

3.数字提取

let str = "asfs123fasde;lkjjiwdf2;kj;;l;io55fsa"
function findNum(str){
  let arr = str.match(/\d+(.\d+)?/g)
  return  arr
}
findNum(str) // ["123", "2", "55"]