【问题标题】:How do I get all paths to tree leafs using Javascript?如何使用 Javascript 获取树叶的所有路径?
【发布时间】:2017-11-29 06:29:05
【问题描述】:

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

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

我的数据如下所示:

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

我想得到这样的输出:

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

【问题讨论】:

  • 您输入的内容到底是什么样的?到目前为止,您尝试过什么?
  • 真正的输入是复杂的,但分解看起来是这样的。稍后我想获取节点的一些值并总结它们等等。关于输入,您究竟想知道什么?
  • 无法告诉你如何在不知道输入的情况下获得输出。
  • 所有节点长这样:node{time:15},那么我要计算每个分支的次数

标签: javascript node.js path tree


【解决方案1】:

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

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; }

【讨论】:

    猜你喜欢
    • 2019-09-25
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多