我希望得到特定父母的所有孩子。我是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]
答案 0 :(得分:0)
你真的想在这里建立一个树结构作为第一步。
每个对象应该包含实际的子对象,而不是包含子id列表。这样,当你想要所有孩子时,你可以遍历那棵树。
答案 1 :(得分:0)
您可能应该考虑在此修改数据结构。为什么不使用一个对象,其中用户id是键(因为它应该是唯一的)。然后你只需要直接获得这些密钥。
将所有内容都放在一个数组中可能很糟糕,因为你必须遍历数组才能找到每个子节点,这个子节点(最坏的情况下)的运行时间等于数组的长度。
答案 2 :(得分:0)
MyCell