【问题标题】:How to replace or append object to another object using Lodash如何使用 Lodash 将对象替换或附加到另一个对象
【发布时间】:2019-01-04 03:56:11
【问题描述】:

我有 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 实现这一点?

【问题讨论】:

  • 为什么选择 Lodash?就Object.assign

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


【解决方案1】:

你不需要 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);

【讨论】:

  • 谢谢伙计!非常简短。
【解决方案2】:

作为替代方案,如果您不想更改原始对象(不可变方式),您可以使用 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);

【讨论】:

  • Object.assign 和 _.assign 已经支持在不改变原始对象的情况下执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 2019-10-20
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
相关资源
最近更新 更多