方法如下:
function deepclone(arr) {
if(typeof(arr) != 'object'||arr == null){
return arr
}
const result = Array.isArray(arr) && [] || {}
for(const key in arr){
result[key] = deepclone(arr[key])
}
return result
}
验证如下
const ccc = [1,2,3,4,5]
const obj = {a:1,b:2,c:ccc}
const obj2 = deepclone(obj)
obj.c = []
console.log(obj,obj2)
控制台打印如下: