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

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中不存在的数据过滤出来,然后两个数据进行拼接组合,我也不知道这样对不对?


回答:

arr1.map(item => arr2.find(citem => citem.wg_id === item.wg_id) || item)


回答:

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'

}]

let arr3 = arr1.map(item=>{

let f = arr2.filter(fi=>{

return item.wg_id == fi.wg_id

})

if(f.length > 0){

item.goods_price = f[0].goods_price

}

return item

})

以上是 我有两组数组对象方面的操作,花了挺长时间都有点屡不清楚,想请大家帮忙看下,谢谢? 的全部内容, 来源链接: utcz.com/p/933134.html

回到顶部