js 树形菜单childMenu,根据当前id,将当前对象放到同级数组中,全部代码。
时间: 2024-12-22 18:33:59 浏览: 39
在 JavaScript 中,处理树形菜单并根据当前 id 将匹配的对象移到同级数组中,通常涉及到遍历数据结构。这里假设你有一个包含父节点和子节点的数据结构类似下面这样的数组:
```javascript
const data = [
{ 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' }] },
// 更多节点...
];
function moveNodeToSameLevel(currentId, nodeArray) {
for (let i = 0; i < nodeArray.length; i++) {
if (nodeArray[i].id === currentId) {
// 如果找到目标节点,将其移动到当前层级
const parentIndex = nodeArray.findIndex(n => n.children.includes(nodeArray[i]));
if (parentIndex !== -1) {
nodeArray.splice(parentIndex + 1, 0, nodeArray[i]); // 移除原来的子位置,并插入新位置
nodeArray[parentIndex].children.splice(nodeArray[parentIndex].children.indexOf(nodeArray[i]), 1); // 从原父节点移除
}
break;
} else if (nodeArray[i].children) {
// 递归检查子节点
moveNodeToSameLevel(currentId, nodeArray[i].children);
}
}
}
// 使用函数
const currentNodeId = '1-1'; // 需要移动的节点ID
moveNodeToSameLevel(currentNodeId, data);
阅读全文