js递归获取树数据的对应值

需求:根据后端返回的树形数据对数据进行解析成对应的值

树形数据:
在这里插入图片描述
后端返回值:
在这里插入图片描述
实现代码:

/**
 * 获取tree对应code的值
 * arr 值数组
 * data tree数据
*/
function recursionChild(arr, data){
    let name = []
    let Obj
    arr.forEach((res)=>{
        Obj = data.find(item => item.dict_code === res)
        if(Obj){
            name.push(Obj.dict_name)
            if(Obj.children) data = Obj.children
        } 
    })
    return name
}

基本解析:
首先,循环arr数据,得到item以后去tree中对比(使用find函数),获得复符合的Obj;
然后,对Obj中的dict_name进行push添加(注意这里要判断一下Obj是否存在);
最后,添加完name以后将原来的data值赋值为符合数据Obj的children数据(数组),继续循环,以此类推,直到结束。

posted @ 2022-12-06 22:19  轻风细雨_林木木  阅读(23)  评论(0编辑  收藏  举报