账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于js 递归方法
    31
    0

    题目描述

    有2个数组

    相关代码

    var a = ['customer','supplier','materal','purchaseOrder','rolesMenge']
    var b = [
        {
            name:'maindata',
            children:[
                {
                    name:'customer',
                    meta:{
                        title:'customer'    
                    }
                },
                {
                    name:'supplier',
                    meta:{
                        title:'supplier'    
                    }
                },
                {
                    name:'materal',
                    meta:{
                        title:'materal'    
                    }
                },
            ]
        },
        {
            name:'purchase',
            children:[
                {
                    name:'purchaseOrder',
                    meta:{
                        title:'purchaseOrder'    
                    }
                },
                {
                    name:'purchaseGood',
                    meta:{
                        title:'purchaseGood'    
                    }
                },
            ]
        },
        {
            name:'stock',
            children:[
                {
                    name:'stockOrder',
                    meta:{
                        title:'stockOrder'    
                    }
                }
            ]
        },
        {
            name:'config',
            children:[
                {
                    name:'userConfig',
                    children:[
                        {
                            name:'rolesMenge',
                            meta:{
                                title:'rolesMenge'    
                            }
                        }
                    ]
                },
            ]
        }
    ]
    

    我的代码

    function getarr(a,b){
        return b.reduce((k,m) => {
            if(m.children){
                let obj = {
                    name:m.name,
                    children:[]
                }
                for(let j of m.children){
                    if(j.children){
                        getarr(a,m.children)
                    } else {
                        if(a.includes(j.meta.title)){
                            obj.children.push(j)
                        }
                    }
                    
                }
                if(obj.children.length){
                    k.push(obj)
                }
    
            }
            return k
        },[])
    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    希望得到

    [
        {
            name: "maindata",
            children:[
                {
                    name:'customer',
                    meta:{
                        title:'customer'    
                    }
                },
                {
                    name:'supplier',
                    meta:{
                        title:'supplier'    
                    }
                },
                {
                    name:'materal',
                    meta:{
                        title:'materal'    
                    }
                }
             ]
         }, 
         {
            name:'purchase',
            children:[
                {
                    name:'purchaseOrder',
                    meta:{
                        title:'purchaseOrder'    
                    }
                }
            ]
        },
        {
            name:'config',
            children:[
                {
                    name:'userConfig',
                    children:[
                        {
                            name:'rolesMenge',
                            meta:{
                                title:'rolesMenge'    
                            }
                        }
                    ]
                },
            ]
        }
    ]
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤独街角 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部