我发现了问题如何将文件路径转换为treeview?,但我不确定如何在JavaScript中获得所需的结果:
我正在尝试将路径数组转换为JSON树:
https://jsfiddle.net/tfkdagzv/16/
但是我的道路被覆盖了。
我正在尝试采取这样的事情:
[
'/org/openbmc/path1',
'/org/openbmc/path2',
...
]
...然后变成...
output = {
org: {
openbmc: {
path1: {},
path2: {}
}
}
}
我敢肯定这很容易,但是我缺少一些东西。
const data = [
"/org/openbmc/examples/path0/PythonObj",
"/org/openbmc/UserManager/Group",
"/org/openbmc/HostIpmi/1",
"/org/openbmc/HostServices",
"/org/openbmc/UserManager/Users",
"/org/openbmc/records/events",
"/org/openbmc/examples/path1/SDBusObj",
"/org/openbmc/UserManager/User",
"/org/openbmc/examples/path0/SDBusObj",
"/org/openbmc/examples/path1/PythonObj",
"/org/openbmc/UserManager/Groups",
"/org/openbmc/NetworkManager/Interface"
];
const output = {};
let current;
for (const path of data) {
current = output;
for (const segment of path.split('/')) {
if (segment !== '') {
if (!(segment in current)) {
current[segment] = {};
}
current = current[segment];
}
}
}
console.log(output);
您的解决方案很接近,只是没有current
正确重置变量。用这个:
current = output;
代替这个:
current = output[path[0]];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句