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

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

根據主鍵和外鍵組合兩個數組

根據主鍵和外鍵組合兩個數組

慕容森 2023-09-21 17:33:10
我有兩個這樣的數組:let event = [              {id: "123", ename: "abc"}              {id: "125", ename: "def"}            ]let speaker = [               {id: "11", sname: "s1", event_id: "123"}, //FK from event table               {id: "13", sname: "s2", event_id: "123"},                {id: "15", name: "s4", event_id: "125"}            ]我想要這樣的輸出:let event_speaker = [                       {                         id: "123",                          ename: "abc",                          speaker: [                             {id: "11", sname: "s1", event_id: "123"},                             {id: "13", sname: "s2", event_id: "123"},                          ]                       },                       {                         id: "125",                          ename: "def",                          speaker: [                             {id: "15", sname: "s4", event_id: "125"}                          ]                       }                   ]我嘗試了不同的答案,這些答案可以將兩個數組合并為一個,但當我們有多個匹配對并且我需要用我自己的密鑰(揚聲器)將其放入一個新數組時,則不行。我已經嘗試過這個:let arr3 = arr1.map((item, i) => Object.assign({}, item, arr2[i]));但它只適用于一個揚聲器,因為它將所有揚聲器鍵放入最終數組中,如下所示let final_array = [     id: "123",     ename: "abc,    sname: "s1",    event_id: "123"]
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

您可以使用map和filter方法來做到這一點。您只需要speaker使用 中當前元素的 id 過濾數組event。


let event = [{"id":"123","ename":"abc"},{"id":"125","ename":"def"}]

let speaker = [{"id":"11","sname":"s1","event_id":"123"},{"id":"13","sname":"s2","event_id":"123"},{"id":"15","name":"s4","event_id":"125"}]


const event_speaker = event.map(({ id, ...rest }) => ({

  id, ...rest, speaker: speaker.filter(({ event_id }) => event_id === id)

}))


console.log(event_speaker)


查看完整回答
反對 回復 2023-09-21
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

您也可以使用對象破壞:


let event = [

              {id: "123", ename: "abc"},

              {id: "125", ename: "def"}

            ]

let speaker = [

               {id: "11", sname: "s1", event_id: "123"}, //FK from event table

               {id: "13", sname: "s2", event_id: "123"}, 

               {id: "15", name: "s4", event_id: "125"}

               ]

let result = event.map(e => ({...e,speaker: speaker.filter(({event_id}) => event_id === e.id)}))


console.log(result)


查看完整回答
反對 回復 2023-09-21
  • 2 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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