【发布时间】:2023-04-05 22:12:01
【问题描述】:
任何人都知道如何进一步压缩我的 mergePath 方法,该方法基于键/值路径合并两个对象上的键?我下面的解决方案使用 Lodash。
let obj1 = { z: {fields: { a: "200", b: "2" }}}
let obj2 = { z: {fields: { a: "2", b: "20" }}}
let objsPath = "z.fields"
let mergePath = (objsPath, obj1, obj2) => (
_.set(obj1, objsPath, {..._.get(obj1, objsPath), ..._.get(obj2, objsPath)})
)
【问题讨论】:
-
您是否关心是就地合并它们还是真的有必要创建新对象?
-
不。两者都可以。
-
然后只需执行
_.merge(_.get(obj1, objsPath), _.get(obj2, objsPath))(如果您想将其放入mergePath函数中,则返回obj1)。或者使用Object.assign而不是lodashmerge。
标签: javascript object lodash javascript-objects