Poszukuję najlepszego sposobu konwersji wielu ścieżek napisów do obiektu zagnieżdżonego za pomocą javascript. Używam Lody, jeśli mogłoby to w jakikolwiek sposób pomóc.Utwórz obiekt zagnieżdżony z wielu ścieżek strunowych
mam następujące ścieżki:
/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
i chciałbym utworzyć następującą tablicę obiektu:
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": []
}
]
}
]
}
];
Zastanawiam się, która jest szybsza, ta lub odpowiedź @ Jonasw. jakiekolwiek myśli? Dla mnie jest to o wiele bardziej czytelne. dwa razy, jeśli to możliwe. : D –
@GeomanYabes to równa się moja pierwsza odpowiedź (jednak wygląda o wiele lepiej) –
@GeomanYabes Ta funkcja rekursywna ściśle podąża za powstałą strukturą drzewa i wyszukuje pasujące elementy potomne w tablicy w czasie liniowym. Można to poprawić poprzez bezpośrednie odwzorowanie nazw potomków na właściwości obiektu węzła drzewa nadrzędnego i późniejsze przekształcenie w układ tablicy OP. Który przyszedłby z dodatkowym stałym kosztem, więc prawdopodobnie niepożądany, chyba że OP zajmie się wieloma ścieżkami. –