后台给返回的数据是这样的
现在想得到这样的数据
而且后台给的数组中并不确定是几层的,所以这里必须用到递归函数。用了下面的代码
let routerArr = JSON.parse(JSON.stringify(value));
function formatRoutes(routerArr){
const arr = [];
let obj = {};
routerArr.forEach(router => {
const tmp = { ...router };
if (tmp.listmodel) {
//内部调用即递归
tmp.listmodel = formatRoutes(tmp.listmodel);
const {orgname, orgid, progid} = router;
obj = {
label: tmp.orgname,
orgid: tmp.orgid,
progid: tmp.progid,
children: tmp.listmodel
}
}
arr.push(obj);
})
return arr;
}
//外部的出口
let routers = formatRoutes(routerArr);