亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從同級對象和過濾器元素數組中創建父子對象?

如何從同級對象和過濾器元素數組中創建父子對象?

慕碼人2483693 2022-09-02 16:13:01
我正在嘗試創建此對象: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條經驗 獲得超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);


查看完整回答
反對 回復 2022-09-02
  • 1 回答
  • 0 關注
  • 78 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號