js实现深度拷贝

本文总结了三种实现深度拷贝的有效方法:使用JSON.parse和JSON.stringify进行快速拷贝;利用jQuery的$.extend方法完成拷贝;通过自定义递归函数实现深度拷贝,适用于复杂的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间遇到深度拷贝的问题,总结一下用的方法

1.方便快速var arr1 = JSON.parser(JSON.stringigy(arr)),这样就把arr赋值给了arr1,修改arr1的内容并不会影响arr

2.jquery提供了$extened方法,$.extened(true,arr1,arr),把arr深度拷贝给了arr1

3.

    function deepClone(item) {
        if (!item) { return item; }

        var type;
        var result;

        types.forEach(function (type) {
            if (item instanceof type) {
                result = type(item);
            }
        });

        var key;
        var value;
        if (item instanceof Array === true) {
            result = [];
        }
        else if (item instanceof Object === true) {
            result = {};
        }
        else {
            return item;
        }
        for (key in item) {
            value = item[key];
            result[key] = (typeof item === "object") ? this.deepClone(value) : value;
        }

        return result;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值