表单提交需要重置功能时,如果不先把原始数据拷贝一份,修改之后,再重置会回不去!!!(对象或数组引用数据类型)

封装一个公共的方法:如下,一般放在项目的utils文件夹中utils.js中,

/**
 * @param data 需要深拷贝的数据
 * @returns {*} 返回拷贝之后的数据
 */
  function deepCopy(data){
    const t = typeof data;
    let o;
    if(t==='array'){
        o = []
        for(let i = 0;i<data.length;i++){
            o.push(deepCopy(data[i]))
        }
    }else if(t==='object'){
        o = {}
        for(let i in data){
            o[i] = deepCopy(data[i])
        }
    }
    return o;
}
export default{
    deepCopy
}

使用: