商汤科技社招前端一面
商汤科技社招前端一面
1、题目1看题说结果:
- 1 + '2'//12
- 1 - '2'//-1
- {} == {}//false
- typeof null //"object"
- NaN//属于number
- Array.slice()//属于浅拷贝
- 说说cookie localstorage sessionstorage
- 说说同源策略,跨域的解决办法
- 判断变量类型的方法有哪些
- 说说数组有哪些方法,哪些能改变数组,push、splice方法的返回结果是什么?
3、手写代码
4、手写代码
[2, 5, 0, -2, 6] //求非零非负 最小值index,有没有更好的解决办法? function getMinIndex(arr){ let minIndex = -1; let min = Number.MAX_VALUE; for (let i = 0; i < arr.length; i++) { if(arr[i]>0&&arr[i]<min){ min = arr[i]; minIndex = i; } } return minIndex }
//题目3,组织树状结构,有没有更好的解决办法? [ { id: 4, nextId: 2 }, { id: 3, nextId: 4 }, { id: 2, nextId: 5 }, ] function getTree(arr){ let map = new Map(); let res = []; for (let i = 0; i < arr.length; i++) { map.set(arr[i]['nextId'],arr[i]); } for (let i = 0; i < arr.length; i++) { if(!map.has(arr[i]['id'])){ res.push(arr[i]); }else{ let _obj = map.get(arr[i]['id']); _obj['nextId'] = arr[i]; } } return res; } getTree([ { id: 4, nextId: 2 }, { id: 3, nextId: 4 }, { id: 2, nextId: 5 }, ])总结一下,上来没有自我介绍直接开始,还真是毫无准备,说是问基础问的也太细节了吧,第一部分直接给我问懵了,估计凉凉,面试体验也很差。push方法返回什么你们知道吗?splice方法又返回什么?