gpt4 book ai didi

javascript - 如何将路径数组转换为JSON结构?

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:22 27 4
gpt4 key购买 nike

我找到了问题 How to convert a file path into 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]];

关于javascript - 如何将路径数组转换为JSON结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com