我正在尋找將多個字符串路徑轉換爲使用javascript的嵌套對象的最佳方法。如果可以以任何方式幫助,我正在使用lodash。從多個字符串路徑創建嵌套對象
我得到了以下路徑:
/root/library/Folder 1
/root/library/Folder 2
/root/library/Folder 1/Document.docx
/root/library/Folder 1/Document 2.docx
/root/library/Folder 2/Document 3.docx
/root/library/Document 4.docx
,我想創建對象的下列數組:在每個字符串
var objectArray =
[
{
"name": "root", "children": [
{
"name": "library", "children": [
{
"name": "Folder 1", "children": [
{ "name": "Document.docx", "children": [] },
{ "name": "Document 2.docx", "children": [] }
]
},
{
"name": "Folder 2", "children": [
{ "name": "Document 3.docx", "children": [] }
]
},
{
"name": "Document 4.docx", "children": []
}
]
}
]
}
];
我想知道哪個更快,或者@Jonasw的答案。任何想法?這對我來說更可讀。如果可能的話,請雙擊兩次。 :D –
@GeomanYabes這等於我的第一個答案(但它看起來好多了) –
@GeomanYabes這個遞歸函數緊跟在生成的樹結構之後,並在線性時間內搜索數組中的匹配子元素。這可以通過直接將子對象映射到父樹節點的對象屬性並稍後轉換爲OP的數組佈局來加以改進。這會帶來額外的不變成本,因此可能不合意,除非OP處理大量路徑。 –