Как мне функционально отобразить дерево по глубине без рекурсии? - PullRequest
0 голосов
/ 21 сентября 2011

Учитывая дерево, как я могу получить карту 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;
}
...