我想改變這個數據結構:遞歸嵌套的數組轉換成嵌套對象使用對象的密鑰爲每個陣列
[ { sectionName: 'SectionOne',
ingredients: [ {ingredient: 'sugar'}, {ingredient: 'flour'} ]},
{ sectionName: 'SectionTwo',
ingredients: [ {ingredient: 'eggs'}, {ingredient: 'water'} ] },
]
這樣:
{ SectionOne:
{ sectionName: 'SectionOne',
ingredients: {
sugar: { ingredient: 'sugar' },
flour: { ingredient: 'flour' }
}
},
{ SectionTwo:
{ sectionName: 'SectionTwo',
ingredients: {
eggs: { ingredient: 'eggs' },
water: { ingredient: 'water' }
}
},
}
換句話說,我喜歡爲每個我想要轉換爲對象的數組使用對象的鍵。
你可以在這個 jsfddle 以及我的嘗試中找到一個數據結構的例子。我只能轉換外層數組。 我無法管理遞歸使用_.mapKeys(),for循環或類似的去達到所需的結構。我確信我錯過了一個愚蠢的觀點,但我無法繞過這一點。
幫助將非常感謝!
這是一個非常簡潔的語法。它可以工作,但'data.map()'將所有內容都包含在數組中。說,我仍然不能調用'res.sectionOne.ingredients.sugar'。也許迭代一個'for..of loop'或'for'循環會做什麼? – frankydep
@frankydep我編輯了我的答案。現在它創建一個對象,你可以通過'res.sectionOne.ingredients.sugar'訪問你的道具。起初我並沒有意識到你需要一個最終的結果才能成爲一個對象。 – wostex
wostex!非常好的工作!我仍然無法理解爲什麼'Object.assing()'上下文中的'.map()'不會生成數組。是否因爲傳播運算符?還應該'Object.assing()'需要一個目標對象嗎?再次感謝! – frankydep