![](/img/trans.png)
[英]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.