2017-03-28 2 views
0

Ich versuche, etwas zu machen, das Arrays von Strings nimmt, und baut dann Ketten von verschachtelten Objekten, die im Grunde speichern, welche Strings nach was in den Input-Arrays kommen. Anfangs hatten diese Ketten Tiefen von 2, aber ich muss in der Lage sein, Ketten mit höherer Tiefe zu erzeugen.Wie erstelle ich eine verschachtelte Objektstruktur aus einem Pfad (Array von Schlüsseln)?

Grundsätzlich muß ich so ein Array nehmen:

["test1", "test2", "test3", "test4"] 

und in dieser umwandeln:

{ 
    "test1": 
    { 
     "test2": 
     { 
      "test3": 
      { 
       "test4": {} 
      } 
     } 
    } 
} 

Antwort

4

Das sieht wie ein Job für Array#reduce:

function objectFromPath (path) { 
 
    var result = {} 
 
    
 
    path.reduce(function (o, k) { 
 
    return (o[k] = {}) 
 
    }, result) 
 
    
 
    return result 
 
} 
 

 
var path = ["test1", "test2", "test3", "test4"] 
 

 
console.log(objectFromPath(path))
.as-console-wrapper { min-height: 100%; }

+2

Denke nicht, dass er besser wird als das – vol7ron

+1

Vielen Dank für die Antwort, und vor allem für die Bearbeitung des Titels meiner Frage. Jetzt weiß ich tatsächlich, was ich versuche zu tun, heißt! – Travis

Verwandte Themen