微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 JavaScript 中的嵌套对象结构中删除子项

如何解决从 JavaScript 中的嵌套对象结构中删除子项

我有这个数据结构,并试图编写一个函数,如果我们调用具有数据结构和子 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 及其子项(如果有)。我已经在下面编写了一个函数,它将 dataStructurename 作为参数,这似乎有效,但我需要使用 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 举报,一经查实,本站将立刻删除。