js对象数组深拷贝方法
时间: 2023-10-09 08:04:39 浏览: 113
JavaScript 中对象的深拷贝
JavaScript 中的对象数组深拷贝方法有很多种,下面列举几种常见的方法:
1. 使用 JSON.stringify 和 JSON.parse 方法
这种方法利用 JSON 对象的 stringify 和 parse 方法,将对象转换为字符串再转换回来,达到深拷贝的目的。
```javascript
let arr = [{name: "张三", age: 18}, {name: "李四", age: 20}];
let newArr = JSON.parse(JSON.stringify(arr));
```
2. 递归复制对象
这种方法通过递归复制对象的每个属性和属性值,达到深拷贝的目的。
```javascript
function deepClone(obj) {
let newObj = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
newObj[key] = deepClone(obj[key]);
} else {
newObj[key] = obj[key];
}
}
return newObj;
}
let arr = [{name: "张三", age: 18}, {name: "李四", age: 20}];
let newArr = deepClone(arr);
```
3. 使用第三方库
还有一些第三方库(如 lodash、jQuery 等)提供了深拷贝的方法,可以直接调用。
```javascript
let arr = [{name: "张三", age: 18}, {name: "李四", age: 20}];
let newArr = _.cloneDeep(arr); // 使用 lodash 库
```
阅读全文