美文网首页工作总结
js:深拷贝对象、深拷贝数组

js:深拷贝对象、深拷贝数组

作者: 轩轩小王子 | 来源:发表于2019-10-31 16:53 被阅读0次
    //深拷贝对象
    export function deepCopy(obj) {
        let tempObj = {};
        if (Object.prototype.toString.call(obj) == "[object Object]") {
            for (var attr in obj) {
                if (Object.prototype.toString.call(obj[attr]) == "[object Object]") {
                    tempObj[attr] = deepCopy(obj[attr]);
                } else if (Object.prototype.toString.call(obj[attr]) == "[object Array]") {
                    tempObj[attr] = copyArray(obj[attr]);
                } else {
                    tempObj[attr] = obj[attr];
                }
            }
        }
        return tempObj;
    }
    //深拷贝数组
    export function copyArray(arr) {
        let tempArr = [];
        if (Object.prototype.toString.call(arr) == "[object Array]") {
            arr.forEach(function(item) {
                if (Object.prototype.toString.call(item) == "[object Object]") {
                    tempArr.push(deepCopy(item));
                } else if (Object.prototype.toString.call(item) == "[object Array]") {
                    tempArr.push(copyArray(item));
                } else {
                    tempArr.push(item);
                }
            })
        }
        return tempArr;
    }
    
    

    相关文章

      网友评论

        本文标题:js:深拷贝对象、深拷贝数组

        本文链接:https://www.haomeiwen.com/subject/ojmtbctx.html