JavaScript如何深层合并而不是浅层合并?

无论Object.assign和对象传播只能做一浅合并。

问题的一个示例:

// No object nesting

const x = { a: 1 }

const y = { b: 1 }

const z = { ...x, ...y } // { a: 1, b: 1 }

输出是您期望的。但是,如果我尝试这样做:

// Object nesting

const 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

回到顶部