繁体   English   中英

如何从兄弟对象数组和过滤器元素创建父子 object?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM