Учитывая дерево, как я могу получить карту depth -> nodes
?
Я зашел так далеко в JavaScript, но я не уверен, как сделать внешний цикл функциональным. Я мог бы сделать это, используя рекурсив inject
, но я бы предпочел избежать рекурсии.
function treeToLayers(root) {
var layers = [[root]];
var nextLayer = root.children;
while (nextLayer.length > 0) {
layers.push(nextLayer);
var lastLayer = nextLayer;
nextLayer = _(lastLayer).chain().
pluck('children').
flatten().
value();
}
return layers;
}