深拷贝问题

深拷贝

1.写法一
dateMap = JSON.parse(JSON.stringify(dateMap))
2.写法二
2.1写一个js文件
export {
    superType,
    deepCopy
};
const superType = (data) => {
    const type = Object.prototype.toString.call(data).toLowerCase();
    return type.replace(/^\[object\s(\w+)\]$/, (...rest) => {
        return rest[1];
    });
}

const deepCopy = (x) => {
    if (superType(x) !== 'object') {
        return '必须传入对象'; // 若不是对象则结束
    }
    const target = Array.isArray(x) ? [] : {};//判别是数组还是对象
    for (const k in x) { // 循环拷贝
        if (x.hasOwnProperty(k)) { //判断属性是否在对象自身上
            if (superType(x[k]) === 'object') { //若是对象,递归
                target[k] = deepCopy(x[k]);
            } else {
                target[k] = x[k];
            }
        }
    }
    return target;
}
2.2 引用,使用
import {deepCopy} from 'common/js/utils.js';

deepCopy(val) // val为拷贝对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值