[英]How to create a tree (parent-child) object from Array in Javascript
[英]How to create parent-child object from array of sibling objects and filter elements?
我正在嘗試創建這個 object:
const data = [
{
"javascript": [
{
"product": "1234",
},
{
"product": "4321",
}
]
},
{
"python": [
{
"product": "9876",
}
]
}
]
這里的代碼片段是我試圖解析的原始 object:
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))
我無法使類別鍵字符串起作用。 我還需要弄清楚如何正確過濾元素。
您可以嘗試使用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.