总结的一些前端面试题 - 代码篇
<!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>
上一篇:
Java基础知识总结(2021版)
下一篇:
字节跳动软件测试笔试题面试题-它终于来了