js同一个对象深拷贝放进数组
时间: 2023-09-05 13:00:52 浏览: 137
js数组的深拷贝
在JavaScript中,如果要将同一个对象进行深拷贝并放入数组中,可以使用以下方法:
1.使用JSON.stringify()和JSON.parse()进行序列化和反序列化:
首先,使用JSON.stringify()将对象转换为字符串,再使用JSON.parse()将字符串转换为新的对象。由于这是深拷贝,所以新创建的对象与原始对象是完全独立的。最后,将新的对象添加到数组中。代码示例如下:
```javascript
let obj = { name: "张三", age: 20 };
let copiedObj = JSON.parse(JSON.stringify(obj));
let arr = [];
arr.push(copiedObj);
```
2.使用Object.assign()进行拷贝:
使用Object.assign()方法可以将一个或多个对象的属性拷贝到目标对象中。在这种情况下,我们可以将目标对象设置为空对象{},然后使用Object.assign()将原始对象的属性拷贝到目标对象中。这样也可以实现深拷贝。最后,将目标对象添加到数组中。代码示例如下:
```javascript
let obj = { name: "张三", age: 20 };
let copiedObj = Object.assign({}, obj);
let arr = [];
arr.push(copiedObj);
```
需要注意的是,以上两种方法都是针对简单对象的深拷贝。对于包含函数、原型链等特殊情况的对象,可能需要其他的处理方式。
阅读全文