**
有不好的地方还请各位大佬多多指教
**
1.数据格式
var MenuList = [{
Id: "1",
Name: "菜单管理",
path: "/**/",
children: [{
Id: "2",
Name: "菜单管理1",
path: "/**/",
children: []
},
{
Id: "3",
Name: "菜单管理2",
path: "/**/",
children: [{
Id: "4",
Name: "菜单管理1",
path: "/**/",
children: []
},
{
Id: "5",
Name: "菜单管理1",
path: "/**/",
children: []
},
]
}
]
}, ];
2.递归方法
/*递归构造数据
1.数据样式后端都会构造好
2.这里只是演示递归方法
3.如果后端没有处理数据思路可以参考我的c#递归方法,
(逻辑部分写在找子集上,每次调用方法将父级Id传入,例:如果有数据调用MenuToList(MenuList,ParentId),
子集有数据继续调用Menu方法,如果没有return空数据)
*/
function MenuToList(MenuList) {
var k=[];
MenuList.forEach(element => {
var obj = {
Id: element.Id,
title: element.Name,
path: element.path,
children: MenuFindChildre(element.children)
}
k.push(obj)
});
return k;
}
function MenuFindChildre(children) {
if (children==undefined) {
return [];
}
if (children.length > 0) {
return Children(children)
}
if (children.length == 0) {
return [];
}
}
3.使用方式
console.log("方法调用",Children(MenuList));