<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
</html>
<script>
let data = [1, 2, 3, 4, { name: '小明' }]
function deepClone(data) {
// 判断data是否是对象
if (typeof data == 'object') {
console.log(data)
// 如果data是数组deepdata就是数组,如果是对象,他就是对象
let deepData = data instanceof Array ? [] : {};
for (let key in data) {
// 赋值 :如果他是对象 就在调用递归如果不是直接赋值
deepData[key] = typeof (data[key]) == 'object' ? deepClone(data[key]) : data[key]
}
return deepData
}
return data
}
var data2 = deepClone(data)
data[0] = 2
data[4].name = '小红'
console.log(data2)
</script>
JavaScript 递归深拷贝
最新推荐文章于 2023-01-09 14:36:00 发布