Ich möchte diese Teile von Code in kleinere über Rekursion konvertieren, aber ich steckte an Stelle, wo ich for
Schleife verwende.Wie schreibe ich den Code rekursiv?
Ich habe das nächste Wörterbuch: var structure = [];
mit der Struktur:
"path": path,
"children": []
ich es bin Füllung durch meine JSON-Datei parsen. Einer der Pfade aus dem JSON sieht so aus: "path": "Assignment_1/src/com",
, also analysiere ich den Pfad von /
und versuche, diese Struktur innerhalb meines structure
Wörterbuchs wieder aufzubauen. Der erste Teil, "path": "Assignment_1/",
Ich setze mich in meine Struktur. Der zweite Teil "path": "Assignment_1/src/",
Ich setze in das children
Wörterbuch und so weiter.
Ohne Rekursion mache ich das:
if(path.split("/").length == 2) {
if(type == "tree") {
var path0 = path.split("/")[0];
var path1 = path.split("/")[1];
for(var j = 0; j < structure.length; j++) {
var foundPath = structure[j]["path"];
if(foundPath == path0) {
structure[j]["children"].push({
"path": path1,
"children": []
})
}
}
}
}
if(path.split("/").length == 3) {
if(type == "tree") {
var path0 = path.split("/")[0];
var path1 = path.split("/")[1];
var path2 = path.split("/")[2];
for(var j = 0; j < structure.length; j++) {
var foundPath = structure[j]["path"];
if(foundPath == path0) {
for(var k = 0; k < structure[j]["children"].length; k++) {
var foundPath = structure[j]["children"][k]["path"];
if(foundPath == path1) {
structure[j]["children"][k]["children"].push({
"path": path2,
"children": []
})
}
}
}
print(structure);
}
}
}
Jetzt möchte ich es vereinigen, so wird es mein structure
Wörterbuch automatisch alle Ordner durchlaufen und füllen. Ich begann mit while
Loops, aber diese Teile:
structure[j]["children"].push({ })
structure[j]["children"][k]["children"].push({ })
sind Programm zu schwierig. Jede Hilfe oder Beratung hilft mir sehr!
UPDATE
Eingang ist (ein Teil):
{
"path": "Folder_1/src/com",
"mode": "040000",
"type": "tree"
},
Output:
mit 'reduce' kann helfen. – OmG
@ j.doe bitte Beispiel Eingabe/Ausgabe –
@ Jonasw Ich habe hinzugefügt. Ich hoffe, das wird helfen. Wenn Sie etwas brauchen, fragen Sie mich bitte! –