我有两组数组对象方面的操作,花了挺长时间都有点屡不清楚,想请大家帮忙看下,谢谢?

作者站长头像
站长
· 阅读数 14

                    let arr1 = [{
                        goods_price:1,
                        wg_id:'123'
                    },{
                        goods_price:2,
                        wg_id:'124'
                    },{
                        goods_price:6,
                        wg_id:'789'
                    }]
                    
        
                    let arr2 = [{
                        goods_price:100,
                        wg_id:'345'
                    },{
                        goods_price:200,
                        wg_id:'124'
                    },{
                        goods_price:500,
                        wg_id:'123'
                    }]

我有arr1 和 arr2 两个数组对象,我需要根据arr1中的wg_id 和 arr2中的wg_id去做对比,

以arr1的为标准,

如果arr1中的wg_id 和arr2中的wg_id相等,就用arr2中的对应数据,如果arr1中的wg_id值 ,arr2中不存在的话,就要arr1对应的那条数据,arr2中的wg_id值 ,arr1中不存在的话,则不需要保留,像上面两组数据,我希望得到的结果是:

let arr3 = [{
            goods_price:500,
            wg_id:'123'
        },{
            goods_price:200,
            wg_id:'124'
        },{
            goods_price:6,
            wg_id:'789'
     }]

我自己感觉是不是需要做两步操作,首先要过滤出,arr1 wg_id和arr2中的wg_id相等的数据,然后还需要把arr1中存在 arr2中不存在的数据过滤出来,然后两个数据进行拼接组合,我也不知道这样对不对?

回复
1个回答
avatar
test
2024-07-16
arr1.map(item => arr2.find(citem => citem.wg_id === item.wg_id) || item)
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容