我有一個物件陣列:。
注意:我想使用map的javascript方法在內部的categories中添加新的物件,它將包含新的物件subcat3,它進一步包含 "group "中的所有group物件。
[
{
"id":"presentation"。
"類別":[
{
"id":"cat1"。
"categories":[
{
"id"/span>:"subcat1",
"name":"subcat1",
"group":[
{
"id"/span>:"group1",
"name":"group1".
},
{
"id"/span>:"group2"。
"name":"group2".
}
]
},
{
"id":"subcat2",
"name":"subcat2",
"group":[
{
"id"/span>:"group3",
"name":"group3".
}
]
}
]
}
]
}
]
而我需要的結果是:
[
{
"id":"presentation"。
"類別":[
{
"id":"cat1"。
"categories":[
{
"id"/span>:"subcat1",
"name":"subcat1",
"group":[
{
"id"/span>:"group1",
"name":"group1".
},
{
"id"/span>:"group2"。
"name":"group2".
}
]
},
{
"id":"subcat2",
"name":"subcat2",
"group":[
{
"id"/span>:"group3",
"name":"group3".
}
]
},
{
"id":"subcat3",
"name":"subcat3",
"group":[
{
"id"/span>:"group1",
"name":"group1".
},
{
"id"/span>:"group2"。
"name":"group2".
},
{
"id":"group3",
"name":"group3".
}
]
}
]
}
]
}
]
uj5u.com熱心網友回復:
如果你想肯定地使用地圖,那么你可以按照下面的方法。
邏輯
- 對輸入陣列中的節點進行映射 。
- 通過每個節點的類別進行映射 。
- 在每個類別中搜索類別 。
- 通過該類別中的每個組進行映射。
從生成的陣列中,用第3級平鋪該陣列,并推送到你想要的節點。
。const input = [{"id"/span>: "演示","類別":[{"id": "cat1","categories":[{"id": "subcat1","name":"subcat1", "group":[{"id": "group1","name":"group1"},{"id": "group2","name":"group2"}]}, {"id": "subcat2","name":"subcat2", "group": [{"id":"group3","name":"group3"}]] }]}。
const newCat = input.map((ipCategory) => ipCategory。 categories.map((category) => category。 categories.map((innerCategory) =>/span> innerCategory。 group.map((group) =>/span> group))))。
const groups = newCat.flat(3) 。
input[0].categories[0].categories.push({
id:"subcat3"/span>,
name:"subcat3",
group: groups
});
console.log(input);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
const input = [{"id"/span>: "演示","類別":[{"id": "cat1","categories":[{"id": "subcat1","name":"subcat1", "group":[{"id": "group1","name":"group1"},{"id": "group2","name":"group2"}]}, {"id": "subcat2","name":"subcat2", "group": [{"id":"group3","name":"group3"}]] }]}。
const newInput = input.reduce((a,c) => /span> {
const modified = c.categories.map((category, id) =>/span> {
return({
...類別。
'categories': [.
...category.categories,
{ id: 'subcat3', name: 'subcat3', groupings: category.categories. flatMap(({ group }) =>組) }
]
});
});
return [ {
...c,
categories: c.categories.map((i, ind) => /span> ({ ...modified[ind]})
}];
}, []);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/309970.html
標籤:
上一篇:倒轉一個給定的數字
下一篇:計算資料集串列的相關矩陣
