- 此问题在此处已有答案**:
JavaScript - merge two arrays of objects and de-duplicate based on property value(14个答案)
23小时前关门了。
我是JavaScript新手,需要一些帮助来组合2个对象并删除重复项,所以有人能解决这个问题吗?我得到了2个对象,如下所示:
[
{
Id: 'car1',
company: 'bmw',
mileage: 66
},
{
Id: 'car2',
company: 'audi',
mileage: 53
},
{
Id: 'car3',
company: 'GM',
mileage: 48
}
]
以及
[
{
Id: 'car1',
company: 'bmw',
mileage: 12
},
{
Id: 'car2',
company: 'audi',
mileage: 67
},
{
Id: 'car4',
company: 'Mercedes',
mileage: 54
}
]
我需要合并这两个对象,以便输出如下所示,其中两个对象合并,如果汽车id相同,则里程数较高的汽车保留:
[
{
Id: 'car1',
company: 'bmw',
mileage: 66
},
{
Id: 'car2',
company: 'audi',
mileage: 67
},
{
Id: 'car3',
company: 'GM',
mileage: 48
},
{
Id: 'car4',
company: 'Mercedes',
mileage: 54
}
]
3条答案
按热度按时间voase2hg1#
我的解决方案:
esyap4oy2#
像这样的东西可能会工作。
1.复制数组
1.迭代其他数组,添加未找到的项,如果里程数更高则替换。
0tdrvxhp3#
我已经使用concat方法连接了2个数组,然后通过for循环找到了唯一的对象。
这里arr1是第一个对象,arr2是第二个对象。
检查JSFiddle link