因为后台给的数据参数跟跟前端需要的不一样,后台给的数据如下(有多层嵌套):
code: null
id: 1
name: "业务功能菜单"
parentId: null
sort: null
type: null
child: [{
code: "eos-admin-store-control"
id: 3
name: "eos管理员门店管理"
parentId: 1
sort: null
type: null,
child: [{
code: "eos-admin-store-list"
id: 4
name: "eos管理员门店列表"
parentId: 3
sort: null
type: null,
child: []
},
{
code: "eos-admin-store-list"
id: 5
name: "eos11111111"
parentId: 3
sort: null
type: null,
child: []
}
]
}]
如何用迭代的方式,替换成递归?因为递归影响性能。
根据插件需求,遍历成对应的参数,参数格式如下:
fromData:[
{
id: "1",
pid: 0,
label: "一级 1",
children: [
{
id: "1-1",
pid: "1",
label: "二级 1-1",
children: []
},
{
id: "1-2",
pid: "1",
label: "二级 1-2",
children: [
{
id: "1-2-1",
pid: "1-2",
children: [],
label: "二级 1-2-1"
},
{
id: "1-2-2",
pid: "1-2",
children: [],
label: "二级 1-2-2"
}
]
},
{
id: "2-1",
pid: "1",
label: "仨级 1-2",
children: [
{
id: "2-2-1",
pid: "2-1",
children: [],
label: "仨级 1-2-1"
},
{
id: "2-2-2",
pid: "2-1",
children: [],
label: "仨级 1-2-2"
}
]
}
]
},
]
这种不定层级情景下用递归最合适了吧,这种数据结构转换也就是拿到数据转换一次而已,计算量能有多少啊,居然开始担心递归影响性能了?你要追求性能应该让后端改格式
刚才想不开想去测试一下题主说的递归影响性能是否存在写下上面测试代码,3的10次方+的对象够大够深吧,
37ms
就递归转换了,完全不存在性能问题啊