У меня есть два массива объектов, которые содержат адреса, которые имеют метку и объект для фактического адреса:Deep Объединить с помощью Lodash
var originalAddresses = [
{
label: 'home',
address: { city: 'London', zipCode: '12345' }
},
{
label: 'work',
address: { city: 'New York', zipCode: '54321' }
}
];
var updatedAddresses = [
{
label: 'home',
address: { city: 'London (Central)', country: 'UK' }
},
{
label: 'spain',
address: { city: 'Madrid', zipCode: '55555' }
}
];
Теперь я хочу, чтобы объединить эти массивы с помощью label
и сравнить отдельные свойства адреса и объединить только свойства из нового адреса, которые действительно присутствуют. Таким образом, результат должен выглядеть следующим образом:
var result = [
{
label: 'home',
address: { city: 'London (Central)', zipCode: '12345', country: 'UK' }
},
{
label: 'work',
address: { city: 'New York', zipCode: '54321' }
},
{
label: 'spain',
address: { city: 'Madrid', zipCode: '55555' }
}
]
Как я могу это сделать с помощью lodash? Я пробовал комбинацию unionBy()
и merge()
. С unionBy() я смог сравнить и объединить массивы по метке, но это всегда заменяет весь объект. Я могу с уверенностью объединить адреса, но это не происходит по метке.