簡體   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