生成树形菜单递归js函数
时间: 2024-04-15 07:05:11 浏览: 113
以下是一个生成树形菜单递归JS函数的示例:
```javascript
function createTreeMenu(data, parentId) {
var tree = [];
for (var i = 0; i < data.length; i++) {
if (data[i].parent_id == parentId) {
var node = {
id: data[i].id,
text: data[i].name,
children: createTreeMenu(data, data[i].id)
};
tree.push(node);
}
}
return tree;
}
```
该函数接受两个参数:
1. data:一个数组,包含所有的菜单项;
2. parentId:当前菜单项的父级 ID,如果传入 `null`,则表示生成整个树形菜单。
函数首先创建一个空的数组 `tree`,然后遍历 `data` 数组中的每个元素。如果当前元素的 `parent_id` 等于传入的 `parentId`,则将该元素添加到数组 `tree` 中,并递归调用 `createTreeMenu` 函数,将当前元素的 `id` 作为新的 `parentId`,生成该节点的子菜单项。
最后,函数将生成的树形菜单返回。
阅读全文