js 深拷贝
在 JavaScript 中,深拷贝是指完全复制一个对象或数组,包括其所有嵌套的对象和数组,而不是只复制其引用。
以下是一种常见的实现深拷贝的方法:
- 使用 JSON.stringify 和 JSON.parse:这种方法会将对象转换为字符串,然后再将字符串转换回对象,从而完成深拷贝。但是这种方法有一些限制,比如无法复制函数、正则表达式等特殊类型的数据。
function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj));
}
- 使用递归:这种方法通过递归遍历对象的每个属性,然后逐个复制属性值,从而完成深拷贝。
function deepCopy(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let copy = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
return copy;
}
以上是两种常见的深拷贝方法,根据具体的需求和数据类型,可以选择适合的方法来实现深拷贝
原文地址: https://www.cveoy.top/t/topic/iRHT 著作权归作者所有。请勿转载和采集!