9月6日19:00到20:30
90分钟,10道单选,10~15道多选
2道简答题:
1)什么是事件委托
2) ajax, axios, jsonp分别是什么
编程题:
1. 在一堆牌中,把第一张牌放到桌面,再把牌堆的第二张牌放到牌堆底部,然后再把牌堆新的第一张牌放入桌面,以此类推。
最后桌子上牌的顺序是:[1,2,3,4,5,6,14,8,9,10,11,12,13], 原来牌堆的顺序是 [1,12,2,8,3,11,4,9,5,13,6,10,14]
问:
已知桌面上牌的顺序是 [1,2,3,4,5,6,14,8,9,10,11,12,13],求原来牌堆的顺序是什么?
function reverse(arr){
let len = arr.length;
if (len <= 2) return arr;
let res = [];
for (let i = len - 1; i >=0; --i) {
res.unshift(arr[i]);
if (i == 0) break;
if (res.length != 1){
let last = res.pop();
res.unshift(last);
}
}
return res;
}
2. 已知有一个数组 [0,2,3,5,7,8,10] 输出:“0,2~3,5,7~8,10”
或者:输入 [0, 2,3,4,5,9, 11,12,13,15]
请输出: “0,2~5,9,11~13,15”
let num = [0,2,3,5,7,8,10]
function simplifyStr( num ) {
let res ="";
for (let i = 0; i < num.length; ++i) {
if ((num[i] + 1) != num[i+1]){
res+=num[i]+',';
}else{
let j = i;
res+=num[i]+'~';
while(j < num.length && (num[j]+1) == num[j+1]) j++;
res+=num[j]+',';
i = j;
}
}
res = res.substring(0, res.length-1);
return res;
}
console.log(simplifyStr(num))
#游卡#