let menuList = [
{
id: 1,
pid: 0,
title: '控制台',
code: 'deskboard'
},
{
id: 2,
pid: 0,
title: '用户管理',
code: 'user'
},
{
id: 3,
pid: 2,
title: '用户列表',
code: 'list'
},
{
id: 4,
pid: 3,
title: '查看',
code: 'view'
},
{
id: 5,
pid: 3,
title: '删除',
code: 'delete'
},
{
id: 6,
pid: 0,
title: '系统设置',
code: 'system'
},
{
id: 7,
pid: 6,
title: '日志管理',
code: 'logs'
}
];
// 递归树形结构
function treeRecursion(menuList, id, list) {
for (let item of menuList) {
if (item.pid === id) list.push(item);
}
for (let i of list) {
i.children = [];
treeRecursion(menuList, i.id, i.children);
if (i.children.length <= 0) delete i.children;
}
return list;
}
console.log(treeRecursion(menuList, 0, []));
function buildTree(data, parentId = 100000) {
let tree = [];
for (let item of data) {
if (item.parent === parentId) {
const children = buildTree(data, item.adcode);
if (children.length) {
item.children = children;
}
tree.push(item);
}
}
return tree;
}
js 递归遍历树形结构
于 2024-05-06 16:46:31 首次发布