慕碼人2483693
2022-09-02 16:13:01
我正在嘗試創(chuàng)建此對象:const data = [ { "javascript": [ { "product": "1234", }, { "product": "4321", } ] }, { "python": [ { "product": "9876", } ] }]這里的代碼片段是我試圖解析的原始對象:const myData = [ { "category": "javascript", "product": "1234" }, { "category": "javascript", "product": "4321" }, { "category": "python", "product": "9876" },];const mountCategories = (data) => { const categoriesObj = data.map(value => value.category).filter((value, index, a) => a.indexOf(value) === index) const categorizedData = categoriesObj.map((value) => { return { value: data.map(value => { return { product: value.product, } }) } }); return ( categorizedData )}console.log(mountCategories(myData))我無法使類別鍵字符串正常工作。另外,我需要弄清楚如何正確過濾元素。
1 回答

米脂
TA貢獻1836條經(jīng)驗 獲得超3個贊
你可以嘗試使用 array.reduce:
const myData = [
{
"category": "javascript",
"product": "1234"
},
{
"category": "javascript",
"product": "4321"
},
{
"category": "python",
"product": "9876"
},
];
let result = myData.reduce((acc,current) => {
let prev = acc.find(doc => doc[current.category]);
if(!prev){
prev = { [current.category]: [] };
acc.push(prev);
}
prev[current.category].push({product: current.product});
return acc;
}, []);
console.log(result);
添加回答
舉報
0/150
提交
取消