菜单数据
var menus = [
{ id: '1', pid: '0', title: '用户管理' },
{ id: '2', pid: '0', title: '角色管理' },
{ id: '3', pid: '0', title: '设备管理' },
{ id: '4', pid: '1', title: '用户列表' },
{ id: '5', pid: '1', title: '编辑用户' },
{ id: '6', pid: '2', title: '角色列表' },
{ id: '7', pid: '2', title: '编辑角色' },
{ id: '8', pid: '3', title: '设备列表' },
];
转换结构
// 递归组成树结构
function arr2Tree(arr, id = '0') {
var results = [];
arr.forEach(item => {
if(item.pid === id) {
var d = {...item};
var children = arr2Tree(arr, d.id);
if(children?.length) d.children = children;
results.push(d);
}
});
return results;
}
arr2Tree(menus); // 返回树结构