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