商汤科技社招前端一面

商汤科技社招前端一面

1、题目1看题说结果:
  • 1 + '2'//12
  • 1 - '2'//-1
  • {} == {}//false
  • typeof null //"object"
  • NaN//属于number
  • Array.slice()//属于浅拷贝
2、八股文
  • 说说cookie localstorage sessionstorage
  • 说说同源策略,跨域的解决办法
  • 判断变量类型的方法有哪些
  • 说说数组有哪些方法,哪些能改变数组,push、splice方法的返回结果是什么?
3、手写代码
[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
}


4、手写代码
//题目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方法又返回什么?


#商汤科技#
全部评论
厉害了,感谢大神分享
点赞 回复 分享
发布于 2022-08-24 10:16 江苏

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
2 19 评论
分享
牛客网
牛客企业服务