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数据(数组),继续循环,以此类推,直到结束。