我了解到,当使用 Object.assign() 时,它仅扩展顶级对象。如何深入扩展对象?例如,假设我有以下源对象:
const source = {
id: 1,
otherKey: {},
params: {
page: {
a: 1,
b: {}
},
data: {
b: 1
}
}
}
我正在使用Object.assign()
这样的:
Object.assign({}, source, {
params: {
page: {
a: 2
}
}
}
结果将是:
{
id: 1,
otherKey: {},
params: {
page: {
a: 2
}
}
}
如何以浅克隆方式保留 params.data 键和 params.page.b 键。
oldObject.params.data === newObject.params.data // true
oldObject.params.page === newObject.params.page // false
oldObject.params.page.b === newObject.params.page.b // true
注意:这个问题与How to deep merge 而不是 shallow merge 不同。那里的答案没有给出预期的结果。
检查从上述链接中获取答案的此垃圾箱。