如何使用Javascript获取树叶的所有路径?

时间:2017-06-26 12:05:03

标签: javascript node.js path tree

如何使用Javascript获取树叶的所有路径?

我尝试使用arboreal包,但如果它有帮助,我可以简单地将它解析为数组或类似的东西。

我的数据如下:

      1
     / \
    2   3
   /   / \
  4   6   5
 /
7

我想获得这样的输出:

  

[1,2,4,7],[1,3,6],[1,3,5]

1 个答案:

答案 0 :(得分:2)

您可以访问所有节点,如果节点没有更多子节点,您可以将实际路径存储在结果集中。



function getPath(object) {
    function iter(o, p)  {
        var keys = Object.keys(o);
        if (keys.length) {
            return keys.forEach(function (k) {
                iter(o[k], p.concat(k));        
            });
        }
        result.push(p);
    }
    
    var result = [];
    iter(object, []);
    return result;
}

var object = { 1: { 2: { 4: { 7: {} } }, 3: { 6: {}, 5: {} } } };

console.log(getPath(object));

.as-console-wrapper { max-height: 100% !important; top: 0; }