笔试:
1、判断异步执行顺序
console.log(1);
setTimeout(()=>{
Promise.resolve().then(()=>{
console.log(2);
})
console.log(3);
},0);
new Promise ((resolve)=>{
for(let i=0; i<=1000;i++ ){
if(i===1000){
resolve();
}
}
console.log(4);
}).then(()=>{
console.log(5);
});
console.log(6);
执行顺序为:1 4 6 5 3 2
2、服务器api返回给前端的地址数据需要脱敏,脱敏规则如下:
1位字符,不脱敏
2-4位字符,第1位脱敏(如原数据为“南山区”,脱敏后数据为“*山区”)
5-9位字符,第3-5位脱敏(如原数据为“南山区科技二路”,脱敏后数据为“南山***二路”)
10位以上,倒数3-5位脱敏(如原数据为“南山区海天二路68爱德华小区”,脱敏后数据为“南山区海天二路***小区”)
function desensitization(address) {//TODO:}
结果代码:
3、给定一个整数数组a,其中1≤a[i]≤n (n为数组长度),其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在0(n)时间复杂度内解决这个问题吗?
function findRepeat2Element(arr: number[]) {//TODO:}
结果代码: