我有一個帶有資料的陣列:
我有一個帶有資料的陣列。
const data = [
{
groupName: 'groupName1',
types: [
{
name: 'name1'。
displayName: 'displayName1'.
},
{
name: 'name2',
displayName: 'displayName2'.
},
]
},
{
groupName: 'groupName2',
types: [
{
name: 'name3'。
displayName: 'displayName3'.
},
{
name: 'name4',
displayName: 'displayName4'.
},
]
},
我需要轉換這個陣列,以便為每個物件添加一個額外的groupName欄位。輸出應該是一個包含物件的陣列,如下圖所示:
const resultData = [
{
groupName: 'groupName1',
name: 'name1',
displayName: 'displayName1'.
},
{
groupName: 'groupName1',
name: 'name2',
displayName: 'displayName2'.
},
{
groupName: 'groupName2',
name: 'name3',
displayName: 'displayName3'.
},
{
groupName: 'groupName2',
name: 'name4',
displayName: 'displayName4'.
},
]
我試著通過map陣列方法來做這件事
>。const data = [{"groupName"/span>: "groupName1","type": [{"name":"name1","displayName": "displayName1"},{"name":"name2", "displayName": "displayName2"}]},{"groupName":"groupName2", "type": [{"name":"name3","displayName": "displayName3"},{"name":"name4","displayName":"displayName4"}】。]
const resultData = data.map((item) => /span> {
item.types.map((item1) => {
return {
...item1。
groupName: item.groupName.
}
})
return item
})
console.log(resultData)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
但這并沒有回傳我需要的陣列。請告訴我如何轉換這個陣列,使每個物件具有正確的結構?預先感謝您!
uj5u.com熱心網友回復:
用Array.flatMap()替換外部的Array.map()呼叫,創建一個平面陣列,并回傳內部map呼叫的結果,而不是原始項。
const data = [{"groupName"/span>: "groupName1","type": [{"name":"name1","displayName": "displayName1"},{"name":"name2", "displayName": "displayName2"}]},{"groupName":"groupName2", "type": [{"name":"name3","displayName": "displayName3"},{"name":"name4","displayName":"displayName4"}】。]
const resultData = data.flatMap(({ types, groupName }) =>
types.map(item =>({.
...項。
組名
}))
)
console.log(resultData)
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
我將使用reduce。
data.reduce((carry, {types, groupName}) => /span> carry. concat(types.map(span class="hljs-params">d => ({...d, groupName})), [] )。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/306912.html
標籤:
上一篇:檢索以字串開頭的陣列項的有效方法
