第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

合并兩個(gè)對(duì)象數(shù)組中指定 key 的值

合并兩個(gè)對(duì)象數(shù)組中指定 key 的值

躍然一笑 2019-03-13 18:21:39
如題,有兩個(gè)對(duì)象數(shù)組,arr1 和 arr2var arr1 = [    {      cid: 1,      name: 'A',      goods: [        { gid: 11, gname: 'a', cid: 1, count: 1 },        { gid: 12, gname: 'b', cid: 1 },        { gid: 13, gname: 'c', cid: 1 }      ]    },    {      cid: 2,      name: 'B',      goods: [        { gid: 14, gname: 'd', cid: 2, count: 2 }      ]    },    {      cid: 3,      name: 'C',      goods: []    },    {      cid: 4,      name: 'D',      goods: []    }  ]var arr2 = [    { gid: 11, gname: 'a', cid: 1, count: 3 },    { gid: 14, gname: 'd', cid: 2, count: 1 }  ]想把相同 gid 中的 count 進(jìn)行累加,形成一個(gè)新的數(shù)組,最終得到如下效果:(PS:arr 中的 gid 一定是 arr1 已有的,因此不用考慮往空 goods 數(shù)組中插入對(duì)象的情況)var arr3 = [    {      cid: 1,      name: 'A',      goods: [        { gid: 11, gname: 'a', cid: 1, count: 4 },        { gid: 12, gname: 'b', cid: 1 },        { gid: 13, gname: 'c', cid: 1 }      ]    },    {      cid: 2,      name: 'B',      goods: [        { gid: 14, gname: 'd', cid: 2, count: 3 }      ]    },    {      cid: 3,      name: 'C',      goods: []    },    {      cid: 4,      name: 'D',      goods: []    }  ]
查看完整描述

2 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

let getMap = (arr, key) => arr.map(a => a[key]);


let cidMap = getMap(arr1, 'cid');


arr2.forEach(item => {

      let goods = arr1[cidMap.indexOf(item['cid'])]['goods'];

      let goodsMap = getMap(goods, 'gid');

      // 手機(jī)碼字,忘了 goods 的操作會(huì)不會(huì)影響原來(lái)的數(shù)組……

      // 題主自行試一下吧

      arr1[cidMap.indexOf(item['cid'])]['goods']

             [goodsMap.indexOf(item['gid'])]

             ['count'] += item['count'];

});


查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

 arr1.forEach(a=>{

        a.goods=a.goods.map(v=>{

            var index=arr2.findIndex(c=>c.gid===v.gid)

            if(index>=0){

                v.count+=arr2[index].count

            }

            return !v.count?{gid:v.gid,gname:v.gname}:{gid:v.gid,gname:v.gname,count:v.count}

        })

    })


查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 2 回答
  • 0 關(guān)注
  • 745 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)