有赞前端一面

大概持续了一个小时吧,用的微信面试,没能录音,具体的记不清楚了
1.简单介绍
2.项目相关
3.如果让你来做前端监控,你会怎么做
4.讲下async这个库。
5.编程题(实现函数从而改变对象)
const testData = {
    a_v: 123,
    a_y: [1, 2, 3, 4], 
    a_d: {
        s: 2,
        s_3: 3
    },
    a_f: [{
        a_g: 5
    }],
    a_a_d: 1
}
// a_d => aD 
// a_a_d =>aAD
function underscoreToHump(data, isDeep=true) {
    //要实现的函数
}


const result = underscoreToHump(testData)
console.log(result)


我给下我的答案吧
function underscoreToHump(data, isDeep=true) {
    if(data == null || data == undefined){
        return ;
    }
    let newObj = {};
    if(typeof data !== 'object'){
        return data;
    }else{
        if(!Array.isArray(data) ){
            for(let key in data){
                let keyStr = key.toString();
                if(keyStr.indexOf("_")>-1){
                    //转换属性名
                    let tmp = keyStr.split("_");
                    let first = tmp[0];
                    tmp = tmp.map(i => i.toUpperCase());
                    tmp[0] = first;
                    let newKey = tmp.join("");
                    //赋值
                    newObj[newKey] = underscoreToHump(data[key], isDeep);
                }else{
                    //赋值
                    newObj[key] = underscoreToHump(data[key], isDeep);
                }
            }
        }else{
            let len = data.length;
            for(let i = 0; i< len; i++){
                data[i] = underscoreToHump(data[i], isDeep);
            }
            return data;
        }
    }
    return newObj;
}

#有赞##前端工程师##面经##内推##秋招##提前批#
全部评论
有赞前端招聘,简历至:ronghang@youzan.com
点赞
送花
回复
分享
发布于 2018-08-15 10:43
编程题怎么做?
点赞
送花
回复
分享
发布于 2018-08-14 00:27
滴滴
校招火热招聘中
官网直投
老哥,你的简历多久被捞的呀
点赞
送花
回复
分享
发布于 2018-08-14 08:02
编程题和深拷贝的思路很类似
点赞
送花
回复
分享
发布于 2018-08-14 17:35
dalao觉得有赞怎么样啊?
点赞
送花
回复
分享
发布于 2018-08-14 17:58
前端监控该怎么回答?为什么会问这个呢
点赞
送花
回复
分享
发布于 2018-08-14 18:16
async库是指什么?
点赞
送花
回复
分享
发布于 2018-08-29 17:51
你不是cvte 录取了吗?还面试别的公司啊
点赞
送花
回复
分享
发布于 2018-08-29 17:54
应届生吗?大哥,感觉有赞好难进
点赞
送花
回复
分享
发布于 2018-09-09 12:37

相关推荐

点赞 评论 收藏
转发
滴滴一面总结1、js有几种数据类型?有什么判断数据类型的方法?2、原型、原型链、继承怎么理解的?3、js的作用域有几种,怎么理解?let和const,var的理解,写一个题(for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&amp;lt;&nbsp;5;&nbsp;i++)&nbsp;{&nbsp;setTimeout(()&nbsp;=&amp;gt;&nbsp;console.log(i),&nbsp;0)&nbsp;}for&nbsp;(let&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&amp;lt;&nbsp;5;&nbsp;i++)&nbsp;{&nbsp;setTimeout(()&nbsp;=&amp;gt;&nbsp;console.log(i),&nbsp;0)&nbsp;}打印结果是什么、为什么?结果是5个5和12345)4、你知道那些ES6新的特性?举例子说一下?promise、Generator、async/await它们之间的关系5、浏览器的事件循环6、写题,打印结果是什么:(1&nbsp;4&nbsp;5&nbsp;3&nbsp;6&nbsp;2&nbsp;7)console.log('1');setTimeout(() =>&nbsp;{&nbsp;&nbsp;console.log('2');},&nbsp;0)Promise.resolve().then((a) = >{&nbsp;&nbsp;console.log('3');})new Promise((resolve) =>&nbsp;{&nbsp;&nbsp;console.log('4');&nbsp;&nbsp;resolve()&nbsp;&nbsp;console.log('5')}).then(()&nbsp;=&amp;gt;&nbsp;{&nbsp;&nbsp;console.log('6');})new Promise((resolve) =>&nbsp;{  setTimeout(() = >&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;resolve();&nbsp;&nbsp;},&nbsp;100)}).then(() = >&nbsp;{&nbsp;&nbsp;console.log('7');})7、写题:多重数组扁平化8、css有哪些布局?说一下flex布局和属性;说一下定位属性position9、说一下对BFC的理解10、数据机构,二叉树的中序遍历?栈和队列的区别是?11、写题,手动实现数组的filter和reduce方法12、浏览器的存储时间:3/27 #滴滴#&nbsp;&nbsp;#前端面试#
点赞 评论 收藏
转发
点赞 75 评论
分享
牛客网
牛客企业服务