js 树形菜单 根据id判断是否存在上级。
时间: 2024-12-23 15:18:20 浏览: 5
在JavaScript中,树形菜单通常是一个嵌套的数据结构,可以表示层级分明的信息,比如网站的导航菜单。如果你想要根据ID判断某个节点是否在其父级中,你需要遍历这个树形数据结构并查找匹配的ID。
假设你有一个类似这样的树形数据结构:
```javascript
const menuTree = [
{
id: 'root',
children: [
{ id: 'parent1', children: [{ id: 'child1' }, { id: 'child2' }] },
{ id: 'parent2', children: [{ id: 'grandChild1' }] },
],
},
];
```
你可以编写一个函数来检查是否存在指定的上级ID:
```javascript
function hasParent(idToFind, node) {
if (node.id === idToFind) return false; // 如果找到的是目标ID,说明不存在上级
if (!node.children) return false; // 没有children说明不是上级
for (let child of node.children) {
if (hasParent(idToFind, child)) {
return true; // 找到了上级
}
}
return false; // 未在当前节点及其子节点中找到上级
}
// 使用示例
console.log(hasParent('parent1', menuTree)); // 输出: true
console.log(hasParent('notFound', menuTree)); // 输出: false
```
阅读全文