javascript - 根据属性值lodash将对象数组中的属性合并到另一个对象中

标签 javascript arrays object lodash

我有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

关于javascript - 根据属性值lodash将对象数组中的属性合并到另一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795049/

相关文章:

javascript - 自定义文件上传按钮在 Microsoft Edge 中不起作用

php - PHP array_push()不起作用,而array []起作用,仅当没有SQL where子句时

java - 如何在java中选择合适的数组来存储XML数据

iOS - 防止对象释放

java - 如何为实例变量设置默认值?

Javascript json 转换成嵌套 json

javascript - 在 jQuery 按钮回调中获得正确的 "this"

javascript - 如何从另一个组件的列表中删除项目

javascript - 从 javascript 返回一个数组

arrays - Swift:将2D数组转换为自定义对象的数组