JavaScript递归算法生成树形菜单
时间: 2023-12-16 16:42:03 浏览: 91
递归方式实现树形菜单
4星 · 用户满意度95%
JavaScript递归算法可以用于生成树形菜单。下面是一个示例代码:
```javascript// 假设有以下数据结构const menuItems = [
{ id:1, name: '菜单1', parentId: null },
{ id:2, name: '菜单1.1', parentId:1 },
{ id:3, name: '菜单1.2', parentId:1 },
{ id:4, name: '菜单1.2.1', parentId:3 },
{ id:5, name: '菜单2', parentId: null },
];
function generateMenuItems(menuItems, parentId = null) {
const result = [];
for (const item of menuItems) {
if (item.parentId === parentId) {
const children = generateMenuItems(menuItems, item.id);
if (children.length >0) {
item.children = children;
}
result.push(item);
}
}
return result;
}
const treeMenu = generateMenuItems(menuItems);
console.log(treeMenu);
```
在这个示例代码中,`generateMenuItems` 函数接受一个菜单项数组和一个父菜单项的ID作为参数。它会遍历菜单项数组,找到所有具有指定父菜单项ID的子菜单项,并递归地生成子菜单。最后,它会返回一个树形结构的菜单项数组。
希望这个示例能帮到你!如果你有任何问题,请随时问我。
阅读全文