【发布时间】:2015-07-17 06:47:13
【问题描述】:
我正在尝试从我从数据库 (Mongo) 获取的集合中创建一个格式化集合。
这是输入的格式:
[{_id:1,name:'1'},
{_id:2,name:'2},
{_id:3,name:'1-1',parent:1},
...
{_id:50,name:'1-1-3',parent:3}]
如您所见,“最深的祖先”是 _id 1 和 2。子节点的第一个节点包含 _id 3,它有一个子节点 _id 50。
我正在努力使用 Lodash 创建这种集合:
[{
_id:1,name:'1',children:[
{_id:3,name:'1-1',children:[
...,
{_id:50,name:'1-1-3',children:[]}
]},
...
]
},{
_id:1,name:'1',children:[...]
}]
这是我尝试过的:
var result=_.chain(input)
.groupBy('parent')
.pairs()
.map(function(currentItem){
return _.object(_.zip(['parent','children'],currentItem))
})
.value();
但它不能以递归方式工作......
有人可以帮助我吗?
谢谢。
【问题讨论】:
标签: recursion underscore.js lodash