2017-06-26 143 views
1

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

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

我的数据是这样的:

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

我想要得到这样的输出:

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

+1

什么是您的输入真正的样子?你试过什么了? – Erazihel

+0

真实的输入是复杂的,但分解看起来像那样。后来我想获得节点的一些值并对其进行总结,等等。你想知道关于输入的是什么? – Florian

+0

无法告诉你如何在不知道输入的情况下获得输出。 – Erazihel

回答

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

相关问题