如何使用Lodash将对象替换或附加到另一个对象

时间:2018-07-27 04:49:01

标签: javascript json node.js ecmascript-6 lodash

我有2个物体

{
    "Simon": { 
        "occupation": "garbage man",
        "age": "21"
    }
}

还有这个

{
    "wife": "Kate"
}

如何将第二个对象插入到第一个对象中

{
    "Simon": { 
        "occupation": "garbage man",
        "age": "21",
        "wife": "Kate"
    }
}

即使妻子存在,也可以适用:

{
    "wife": "Shandia"
}

结果

{
    "Simon": { 
        "occupation": "garbage man",
        "age": "21",
        "wife": "Shandia"
    }
}

有没有一种方法可以使用lodash?

2 个答案:

答案 0 :(得分:2)

您不需要lodash。使用Object.assign在普通JS中执行此操作。它也适用于第二种情况。

如果您真的想使用lodash进行操作,请使用_.assign;它的工作原理相同。

var simon = {
  "Simon": {
    "occupation": "garbage man",
    "age": "21"
  }
}

var wife = {
  "wife": "Shandia"
};

Object.assign(simon.Simon, wife);
console.log(simon);

答案 1 :(得分:1)

或者,如果您不想更改原始对象(不变的方式),则可以使用ES6传播算子。

var simon = {
  "Simon": {
    "occupation": "garbage man",
    "age": "21"
  }
}

var wife = {
  "wife": "Shandia"
};

const simonWithWife = {
  Simon: {
    ...simon.Simon,
    ...wife
  }
}

console.log(simon); // doesn't get changed
console.log(simonWithWife);