我有2个对象数组,它们每个都有一个共同的id
。如果它们具有匹配的id
,则需要将数组2的对象的属性添加到对象数组1。
阵列1:
[
{
id: 1,
name: tom,
age: 24
},
{
id: 2,
name: tim,
age: 25
},
{
id: 3,
name: jack,
age: 24
},
]
阵列2:
[
{
id: 1,
gender: male,
eyeColour: blue,
weight: 150
},
{
id: 2,
gender: male,
eyeColour: green,
weight: 175
},
{
id: 3,
gender: male,
eyeColour: hazel,
weight: 200
},
]
期望的结果:
[
{
id: 1,
name: tom,
age: 24,
eyeColour: blue,
},
{
id: 2,
name: tim,
age: 25,
eyeColour: green,
},
{
id: 3,
name: jack,
age: 24,
eyeColour: hazel,
},
]
我尝试使用lodash
_.merge
函数,但是当我只想添加eyeColour
时,我最终将所有属性合并到一个数组中。 最佳答案
刚注意到Paul在我回答问题时回答了,但是无论如何我都会添加非常相似的代码:
var getEyeColour = function (el) { return _.pick(el, 'eyeColour'); }
var out = _.merge(arr1, _.map(arr2, getEyeColour));
DEMO