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

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

比較數組中的對象,合并具有相同屬性值的重復項,將屬性值添加到合并的對象

比較數組中的對象,合并具有相同屬性值的重復項,將屬性值添加到合并的對象

梵蒂岡之花 2023-03-24 14:20:39
我有一個對象數組,如果它們在對象鍵電子郵件中具有相同的屬性,我想合并這些對象。需要將重疊屬性添加到合并對象中。使用新的對象鍵最好。這似乎有點復雜。[ { email: '[email protected]',    SearchQuery: 'Abts, Tomma',    SearchResult: 1 },  { email: '[email protected]',    SearchQuery: 'Ernst, Max',    SearchResult: 3},  { email: '[email protected]',    SearchQuery: 'Sigmund Abeles ',    SearchResult: 1 },  { email: '[email protected]',    SearchQuery: 'Barlach',    SearchResult: 4 } ]結果應該是這樣的[ { email: '[email protected]',    SearchQuery: 'Abts, Tomma',    SearchResult: 1     SearchQueryTwo: 'Ernst, Max',    SearchResultTwo: 3    SearchQueryThree: 'Sigmund, Abeles ',    SearchResultThree: 1 },    { email: '[email protected]',    SearchQuery: 'Barlach',    SearchResult: 4 } ]
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

擁有 , SearchResultOne,SearchResultTwo等是可能的,但比它的價值更難SearchResultThree,因此將它放入數組中更有意義:


const inp = [ { email: '[email protected]',

    SearchQuery: 'Abts, Tomma',

    SearchResult: 1 },

  { email: '[email protected]',

    SearchQuery: 'Ernst, Max',

    SearchResult: 3},

  { email: '[email protected]',

    SearchQuery: 'Sigmund Abeles ',

    SearchResult: 1 },

  { email: '[email protected]',

    SearchQuery: 'Barlach',

    SearchResult: 4 } ];

    

const oup = inp.reduce((acc, o) => 

{

  const queryResult = acc.find(qr => qr.email == o.email);

  if(queryResult)

  {

    queryResult.results.push({SearchResult:o.SearchResult, SearchQuery: o.SearchQuery})

  }

  else

  {

    let newQR = {email: o.email, results: [{SearchResult:o.SearchResult, SearchQuery: o.SearchQuery}]};

    acc.push(newQR);

  }

  return acc;

}, []);


console.log(JSON.stringify(oup));


查看完整回答
反對 回復 2023-03-24
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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