js 树形菜单数据对象 根据menuId 获取同级所有数据。
时间: 2024-12-10 16:39:56 浏览: 12
在JavaScript中,树形菜单的数据通常是以嵌套的对象数组(Object Array)表示,每个节点包含一些属性如`id`、`text`(显示的文字)、`children`(其下可能还有子节点)等。假设你有一个这样的数据结构:
```javascript
let menuData = [
{
id: '1',
text: '父节点1',
children: [
{ id: '1.1', text: '子节点1.1' },
{ id: '1.2', text: '子节点1.2' }
]
},
{
id: '2',
text: '父节点2',
children: [
{ id: '2.1', text: '子节点2.1' },
{ id: '2.2', text: '子节点2.2' }
]
}
];
```
如果你需要根据`menuId`获取同级的所有数据,你可以遍历这个数组,查找匹配的`id`。这里是一个简单的函数示例:
```javascript
function getSameLevel(menuId, data) {
return data.filter(item => item.id === menuId).map(item => ({
...item,
children: item.children && item.children.map(child => ({ ...child }))
}));
}
// 使用示例
let sameLevelItems = getSameLevel('1', menuData);
console.log(sameLevelItems);
```
这将返回一个只包含ID为`1`的父节点及其直接子节点的新数组。如果`menuId`不存在于数据中,函数会返回一个空数组。
阅读全文