<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Document</title> | |
</head> | |
<body> | |
<script> | |
const obj1 = { | |
uname: 'zs', | |
age: 18, | |
gender: '男', | |
gfs: ['张梅梅'], | |
cars: { | |
brand: '宝马' | |
} | |
} | |
function deepCopy(oldObj){ | |
//判断一下,传递进来的形参是不是数组,如果是数组则给个[],如果不是则是{} | |
const newObj=Array.isArray(oldObj)?[]:{} | |
//遍历oldObj数组 | |
for (const k in oldObj) { | |
//判断数组内元素的类型(如果为引用类型) | |
if(typeof oldObj[k]==='object'){ | |
//调用deepCopy()进行深层次判断/获取 | |
newObj[k]=deepCopy(oldObj[k]) | |
}else{ | |
//简单类型直接将值赋给newObj | |
newObj[k]=oldObj[k] | |
} | |
} | |
return newObj | |
} | |
const res =deepCopy(obj1) | |
console.log(res); | |
</script> | |
</body> | |
</html> |
用递归实现深拷贝
最新推荐文章于 2024-09-26 01:42:12 发布
该博客介绍了JavaScript中实现深度复制的方法,通过`deepCopy`函数展示了如何递归复制复杂对象,包括其内部的引用类型。示例代码中创建了一个包含用户信息的对象`obj1`,并使用`deepCopy`进行了深拷贝,确保了新旧对象的独立性。文章重点讨论了深拷贝在处理数据克隆和避免引用问题时的重要性。
摘要由CSDN通过智能技术生成