问题描述
我有这个数据结构,并试图编写一个函数,如果我们调用具有数据结构和子 ID 的函数,我们可以删除特定子项及其所有子项。数据结构如下所示:
const dataStructure = {
"id": 1,"name": "Parent","parent_id": null,"children": [
{
"id": 2,"name": "P","parent_id": 1,"children": []
},{
"id": 3,"name": "C","children": [
{
"id": 6,"name": "E","parent_id": 3,"children": []
}
]
},{
"id": 4,"name": "F","children": []
}
]
}
因此,如果我调用 removeFromTree(dataStructure,id)
之类的函数,那么应该删除特定的 Id
及其子项(如果有)。我已经在下面编写了一个函数,它将 dataStructure
和 name
作为参数,这似乎有效,但我需要使用 id 来实现它,以避免删除多个具有相同名称的团队。这是我已经写的:
function removeFromTree(dataStructure,name) {
if (dataStructure.name.trim() === name.trim()) {
dataStructure = undefined;
} else {
dataStructure.children.forEach((child,id) => {
if (!removeFromTree(child,name)) dataStructure.children.splice(id,1);
});
}
return dataStructure;
}
任何关于使用 id 而不是名称来实现这个的建议都会很棒,谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)