ファイルパスをツリービューに変換する方法という質問を見つけました。、しかし、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]
コメントを追加