Задача
У меня есть два массива объектов Javascript, которые мне нужно объединить.Мне нужно объединить путем сопоставления уникальных значений одной пары ключ: значение, которые содержатся в каждом массиве.Ключи для значений, которые я хочу объединить, различаются
Я хочу добавить пары ключ: значение из массива 2 к правильному объекту в массиве 1 на основе соответствующего уникального значения.Значения для array1.user и array2._id - это те значения, которым мне нужно соответствовать.
Массивы
const array1 = [ { _id: 5c6c7132f9bf4bdab9c906ff,
user: 5c65d9438e4a834c8e85dd7d },
{ _id: 5c6ccd6d3a0dc4e4951c2bee,
user: 5c65d9438e4a834c8e85dd7e } ]
const array2 = users [ { _id: 5c65d9438e4a834c8e85dd7d,
info: { name: 'John', city: 'New York' } },
{ _id: 5c65d9438e4a834c8e85dd7e,
info: { name: 'Paneer', city: 'San Fran' } } ]
Что я пробовал
Я пытался использовать функции lodash _.map и _.extend примерно так, но я новичок в lodash, и он не дает мнеправильный вывод
const mergedArray = _.map(array1, function(item){
return _.extend(item, _.find(array2, {_id: item.user}));
});
Результат
mergedArray [ { _id: 5c65d9438e4a834c8e85dd7d,
info: { name: 'John', city: 'New York' } },
{ _id: 5c65d9438e4a834c8e85dd7e,
info: { name: 'Paneer', city: 'San Fran' } }]
Желаемый результат
const mergedArray = [ { _id: 5c6c7132f9bf4bdab9c906ff,
user: 5c65d9438e4a834c8e85dd7d,
info: { name: 'John', city: 'New York' } } ,
{ _id: 5c6ccd6d3a0dc4e4951c2bee,
user: 5c65d9438e4a834c8e85dd7e,
info: { name: 'Paneer', city: 'San Fran' } } ]