深拷贝函数方法

作用
1.深度克隆函数 deepClone 可以帮助解决对象或数组的深度克隆问题。在 JavaScript 中,对象和数组是引用类型,直接赋值或浅拷贝只会复制引用而不是值,这可能导致对原始对象或数组的改变会影响到拷贝后的对象或数组,而深度克隆则可以创建一个完全独立的副本。
2.通过递归处理对象或数组中的每一个属性或元素,深度克隆函数能够确保所有嵌套的对象或数组也被完全复制,而不是简单的复制引用。
3.使用深度克隆函数可以避免在操作复杂数据结构时出现意外的数据共享或不一致的问题,保证数据的独立性和准确性。
因此,对于需要对包含嵌套结构的对象或数组进行克隆操作,或者需要创建完全独立的副本以防止数据共享引起的问题时,使用深度克隆函数是一个有效的解决方案。它可以确保复制后的对象或数组与原始数据完全独立,不会相互影响。

let arr = [
{name:"张三",id:1,ziarr:[{name:"张三2",id:3,ziarr:null}]},
{name:"张1",id:2,ziarr:[name:"dd",id:5]}]
/**
 * 深度克隆对象或数组
 * @param {Object|Array} obj 要克隆的对象或数组
 * @returns {Object|Array} 克隆后的对象或数组
 */
function deepClone(obj) {
    if (obj === null || typeof obj !== 'object') {
        return obj; // 基本类型直接返回
    }

    if (Array.isArray(obj)) {
        return obj.map(item => deepClone(item)); // 处理数组
    }

    const newObj = {};
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            newObj[key] = deepClone(obj[key]); // 递归处理对象属性
        }
    }
    return newObj;
}
//使用
let result = deepClone(arr);
console.log("新数组",result);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值