如何使用Javascript获取树叶的所有路径?
我尝试使用arboreal
包,但如果它有帮助,我可以简单地将它解析为数组或类似的东西。
我的数据如下:
1
/ \
2 3
/ / \
4 6 5
/
7
我想获得这样的输出:
[1,2,4,7],[1,3,6],[1,3,5]
答案 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; }