2017-03-28 148 views
0

我想做一些需要字符串數組的東西,然後構建嵌套對象的鏈,這些嵌套對象的鏈基本上存儲了輸入數組之後的字符串。最初,這些鏈條的深度爲2,但我需要能夠生成更高深度的鏈條。如何從路徑(鍵數組)創建嵌套對象結構?

基本上,我需要一個數組是這樣的:

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

並將其轉換成這樣:

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

回答

4

這看起來像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

不要以爲他會比這更好 – vol7ron

+1

謝謝你的答案,特別是編輯我的問題的標題。現在我真的知道我想要做什麼被稱爲! – Travis