el-tree循环删除节点
时间: 2023-08-07 16:11:41 浏览: 90
删除链表的节点1
要循环删除 el-tree 中的节点,你可以使用递归的方式遍历树的每个节点,并根据特定的条件删除节点。以下是一个示例代码,可以帮助你实现这个功能:
```javascript
// 递归删除节点
function deleteNode(nodeList, id) {
for (let i = 0; i < nodeList.length; i++) {
const node = nodeList[i];
if (node.id === id) {
nodeList.splice(i, 1); // 删除当前节点
return;
}
if (node.children) {
deleteNode(node.children, id); // 递归删除子节点
}
}
}
// 循环删除节点
function loopDeleteNode(treeData, id) {
const stack = [...treeData]; // 使用栈来模拟循环遍历
while (stack.length) {
const node = stack.pop();
if (node.id === id) {
treeData.splice(treeData.indexOf(node), 1); // 删除当前节点
return;
}
if (node.children) {
stack.push(...node.children); // 将子节点加入栈中
}
}
}
// 示例数据
const treeData = [
{
id: 1,
label: 'Node 1',
children: [
{
id: 2,
label: 'Node 1-1',
children: [
{
id: 3,
label: 'Node 1-1-1',
},
],
},
{
id: 4,
label: 'Node 1-2',
},
],
},
];
// 删除节点
deleteNode(treeData, 3);
console.log(treeData);
loopDeleteNode(treeData, 4);
console.log(treeData);
```
你可以根据自己的实际需求,修改节点的判断条件和删除逻辑。希望对你有帮助!
阅读全文