22

我有一个来自Cyril 惊人答案的家谱,但我正试图弄清楚如何调整它以支持多个合作伙伴。在这种情况下,我添加了一个“Mistress”节点并试图表示“Mistress”和“John”有一个名为“Hidden Son”的孩子。

当前的数据结构是这样工作的:

在此处输入图像描述

在那里,root对象存储了所有内容。它有一个children数组,其中包含没有父母的最多“一代”。它还包含一个对象,该对象包含这些兄弟对象/节点的子对象。在上面的示例中,这是root.children[2].

我想我将不得不重构数据结构children并注入有关孩子来自谁父母的信息。只是难以概念化这一点,以及这条线

结局会是这样,除了情妇在左边:

在此处输入图像描述

4

1 回答 1

25

@medder 感谢您的赞赏!

为此,我在 john 和 mistress 之间添加了一个隐藏节点。

并在该隐藏节点中添加了一个孩子,所以看起来约翰和情妇有一个孩子“隐藏的儿子”所以 JSON 看起来像

{
    name: "Mistress",
    id: 9000,
    no_parent: true
  }, {
    name: "",//this is the new node between Mistress and John
    id: 100,
    no_parent: true,//it has no parents
    hidden: true,
    children: [{
      // so this hidden node will have a child 
      // which will make it appear as if john and mistress has a child.
      name: "Hidden Son",
      id: 9001
    }]
  }, {
    name: "John",
    id: 16,
    no_parent: true
  },

工作代码在这里

希望这可以帮助!

于 2015-12-04T00:35:36.940 回答