代码详情:

// 自定义深拷贝

const deepCopy = (data: any) => {
    // 定义新变量
    let newData = null;
    // 判断类型是不是对象
    if (Object.prototype.toString.call(data) === '[object Object]') {
        newData = {}
        // 判断类型是不是数组
    } else if (Object.prototype.toString.call(data) === '[object Array]') {
        newData = []
    } else {
        // 都不是 直接返回data
        return data
    }

    // 检验data的普通类型
    for (let key in data) {
        if (typeof data[key] === "object") {
            // 调用递归方法 赋值
            newData[key] = deepCopy(data[key])
        } else {
            newData[key] = data[key]
        }
    }
    // 输出新的newData
    return newData
}


// 导出
export default deepCopy

hanbo_bo
16 声望1 粉丝

引用和评论

0 条评论