首页 > 其他 > 详细

前端笔试题

时间:2021-01-27 09:49:50      阅读:24      评论:0      收藏:0      [点我收藏+]
1. 编写一个程序将数组、对象扁平化去并去重(值相同即为重复),最终得到一个升序的数组
例子:var arr = [15, [1, new Number(1), 2], { a: 3, b: [4, 7, 8] }, [6, 7, 8, 9, [11, 12, [12, 13, [14]]]]];
返回: [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15]
function deepFlat(data){
}
 
2、根据id,查询树状结构的数据,找到对应id的路径,写一个js 函数实现即可。
var list = [{
    id: "ab",
    children: [{
        id: "ab1",
        children: [{
            id: "ab11",
            children: []
        }]
    },{
        id: "ab2",
        children: []
    }, {
        id: "cd",
        children: [{
            id: "aa",
            children: []
        }, {
            id: "ef",
            children: []
        }]
    }]
}]
function search(list, id){
    let path=[];
    let flag = false;
    
    list.forEach(item=>{
        const deepSearch = (data) =>{     
            if(flag) return;  
            path.push(data.id);  
            // console.log(data.id,flag)
            if(data.id === id){
                flag = true;
            }else if(data.children.length == 0){
                // console.log(data)
                path.pop();
            }else{
                data.children.forEach(sub=>deepSearch(sub))                
                if(!flag) path.pop();
            }                      
        }
        deepSearch(item);
    })
    return flag?path.join(‘->‘):[];
}
console.log(search(list,‘ef‘))

3. 写一个归并排序

 

前端笔试题

原文:https://www.cnblogs.com/yanjianjiang/p/14333252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!