如何使用JavaScript获取到树叶的所有路径?
我尝试使用arboreal
软件包,但是如果有帮助,我可以简单地将其解析为一个数组或类似的东西。
我的数据看起来像这样:
1
/
2 3
/ /
4 6 5
/
7
我想获得这样的输出:
[1,2,4,7],[1,3,6],[1,3,5]
您可以访问所有节点,如果节点没有更多孩子,则可以在结果集中存储实际路径。
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; }