js实现对象数组的深拷贝
时间: 2023-11-09 15:48:30 浏览: 49
你可以使用以下方法来实现 JavaScript 对象数组的深拷贝:
1. 使用JSON.parse()和JSON.stringify():这是一种简单的方法,利用JSON.stringify将对象数组转换为字符串,再使用JSON.parse将字符串转换回对象数组。这将创建一个新的对象数组,与原始对象数组完全独立。
```javascript
var originalArray = [{name: 'John', age: 25}, {name: 'Jane', age: 30}];
var deepCopyArray = JSON.parse(JSON.stringify(originalArray));
```
2. 递归复制:如果你想自己实现深拷贝的逻辑,可以使用递归遍历对象数组的每个元素,并复制其属性到新的对象中。对于引用类型的属性,需要递归调用深拷贝函数。
```javascript
function deepCopy(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
var copy = Array.isArray(obj) ? [] : {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
return copy;
}
var originalArray = [{name: 'John', age: 25}, {name: 'Jane', age: 30}];
var deepCopyArray = deepCopy(originalArray);
```
这两种方法都可以实现对象数组的深拷贝,你可以根据具体需求选择适合的方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)