JavaScript如何深层合并而不是浅层合并?
无论Object.assign和对象传播只能做一浅合并。
问题的一个示例:
// No object nestingconst x = { a: 1 }
const y = { b: 1 }
const z = { ...x, ...y } // { a: 1, b: 1 }
输出是您期望的。但是,如果我尝试这样做:
// Object nestingconst x = { a: { a: 1 } }
const y = { a: { b: 1 } }
const z = { ...x, ...y } // { a: { b: 1 } }
代替
{ a: { a: 1, b: 1 } }
你得到
{ a: { b: 1 } }
x完全被覆盖,因为传播语法仅深入了一层。与相同Object.assign()
。
有没有办法做到这一点?
回答:
有人知道ES6 / ES7规范中是否存在深度合并?
不,不是的。
以上是 JavaScript如何深层合并而不是浅层合并? 的全部内容, 来源链接: utcz.com/qa/431611.html