总结的一些前端面试题 - 代码篇

<!DOCTYPE html>
<html>
<head>
	<title>https://guhaiye.github.io/</title>
</head>
<body>
  总结的一些前端面试基础题,每个面试题目可以直接拷贝运行
   <ul>
     <li>1、写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,.......,a+nb的时间,然后写一个 myClear,停止上面的 mySetInterVal</li>
     <li>2、合并二维有序数组成一维有序数组,归并排序的思路</li>
     <li></li>
    </ul>
</body>
<script type="text/javascript">
  /**
   写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,.......,a+nb的时间,然后写一个 myClear,停止上面的 mySetInterVal
  */
  var mySetInterVal = (fn,a,b)=>{
            
     
    var timer = null;
    var settimer = (fn,a,b)=>{
            
     
      timer = setTimeout(()=>{
            
     
        fn()
        settimer(fn,a+b,b)
      },a)
    }
    settimer(fn,a,b)
    return timer
  }
  var timer = mySetInterVal(()=>{
            
     console.log(timwe)},1000,1000)
  var myclear = (timer)=>{
            
     
     timer && clearTimeout(timer)
  }
  myclear(timer)

  /**
   * 合并二维有序数组成一维有序数组,归并排序的思路
  */
  function merge(left, right) {
            
     
    let result = []
    while (left.length > 0 && right.length > 0) {
            
     
        if (left[0] < right[0]) {
            
     
            /*shift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。*/
            result.push(left.shift())
        } else {
            
     
            result.push(right.shift())
        }
    }
    return result.concat(left).concat(right)
}
function mergeSort(arr) {
            
     
    if (arr.length === 1) {
            
     
        return arr
    }
    while(arr.length > 1){
            
     
        let arrayItem1 = arr.shift();
        let arrayItem2 = arr.shift();
        let mergeArr = merge(arrayItem1, arrayItem2);
        arr.push(mergeArr);
    }
    return arr[0]
}

// let arr1 = [[1,2,3],[4,5,6],[7,8,9],[1,2,3],[4,5,6]];
let arr2 = [[1,4,6],[7,8,10],[2,6,9],[3,7,13],[1,5,12]];
// console.log(mergeSort(arr2))
</script>
</html>
经验分享 程序员 微信小程序 职场和发展