一个极简的js深拷贝方法

137 阅读1分钟

方法如下:

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)

控制台打印如下:

e112dd1eb8837358cfa39d379cd5734.png