获取节点js中特定父节点的所有子节点

时间:2017-08-08 03:15:22

标签: javascript

我希望得到特定父母的所有孩子。我是node.js的新手,无法编写递归函数来执行此任务

var roots = [1,2,6];

var documents = [
{
    "parent_id":1   
    ,childerens:[4,5]
}

,{
    "parent_id":4   
    ,childerens:[9]
}

,{
    "parent_id":9   
    ,childerens:[]
}

,{
    "parent_id":5   
    ,childerens:[3]
}

,{
    "parent_id":3   
    ,childerens:[]
}

]

roots.forEach(function (rootParentId) {
    var allchilderens=getAllchild(rootParentId);

})

这是我的意思的一个例子:

var allchilderens = getAllchild(1);
allchilderens == [4,5,9,3]

3 个答案:

答案 0 :(得分:0)

你真的想在这里建立一个树结构作为第一步。

每个对象应该包含实际的子对象,而不是包含子id列表。这样,当你想要所有孩子时,你可以遍历那棵树。

答案 1 :(得分:0)

您可能应该考虑在此修改数据结构。为什么不使用一个对象,其中用户id是键(因为它应该是唯一的)。然后你只需要直接获得这些密钥。

将所有内容都放在一个数组中可能很糟糕,因为你必须遍历数组才能找到每个子节点,这个子节点(最坏的情况下)的运行时间等于数组的长度。

答案 2 :(得分:0)

MyCell