js 对象数组深拷贝
时间: 2023-11-07 17:05:33 浏览: 110
要对 JavaScript 对象数组进行深拷贝,可以使用一些方法。以下是常见的几种方法:
1. 使用 JSON 序列化和反序列化:将对象数组先通过 JSON.stringify() 方法转换为字符串,再通过 JSON.parse() 方法将字符串转换回对象数组。
```javascript
const copy = JSON.parse(JSON.stringify(originalArray));
```
2. 使用递归函数手动复制每个对象的属性:
```javascript
function deepCopy(originalArray) {
const copy = [];
originalArray.forEach(item => {
if (typeof item === 'object' && item !== null) {
copy.push(deepCopy(item));
} else {
copy.push(item);
}
});
return copy;
}
const copy = deepCopy(originalArray);
```
3. 使用 ES6 的扩展运算符(...)和 Array.map() 方法:
```javascript
const copy = originalArray.map(item => ({ ...item }));
```
无论使用哪种方法,都要注意对象数组中嵌套的对象或数组的拷贝。如果对象数组中的元素是引用类型,需要确保它们也进行深拷贝,而不仅是浅拷贝。
阅读全文