如何正确复制javascript中的对象?

如何正确复制javascript中的对象?,javascript,Javascript,我试图使用扩展运算符复制其他对象中的一个对象,但当我从复制对象中的数组中更改一项时,原始项将更改为。有人知道我怎样才能只在对象2中进行更改吗 下面是一个简单的例子: let obj1 = { a:'hello', b:'hi', c: [1,2,3] } let obj2 = { ...obj1 } obj2.c[1] = 44 编辑: 这个线程的答案是:) 最常见、最安全的方法是通过Object.assign() 它会创建一个浅拷贝,如果您想要一个深拷贝,您可以使用lodash deepC

我试图使用扩展运算符复制其他对象中的一个对象,但当我从复制对象中的数组中更改一项时,原始项将更改为。有人知道我怎样才能只在对象2中进行更改吗

下面是一个简单的例子:

let obj1 = { a:'hello', b:'hi', c: [1,2,3] }
let obj2 = { ...obj1 }
obj2.c[1] = 44 
编辑: 这个线程的答案是:)

最常见、最安全的方法是通过Object.assign()


它会创建一个浅拷贝,如果您想要一个深拷贝,您可以使用lodash deepClone(),例如,或者为自己编写一个递归克隆器。

我尝试过这一点,但仍然更改了这两个。也许您做得不对,如果您想要一个副本,这就是您获得它的方式,避免了突变,因此错误必须在别处。当您更改克隆对象中的数组属性时,它会更改原始。。。。更新了答案问题中没有lodash标签???对不起,这是错的。
let clone = Object.assign({}, myObj);