使用递归拷贝所有层级
function deepClone(obj){
const objClone = Array.isArray(obj)?[]:{}; // 判断拷贝对象是数组还是对象后设置个空值
if(obj && typeof obj === 'object'){
for(key in obj){
if(obj.hasOwnProperty(key)){ // 判断是否有当前项
if(obj[key] && typeof obj[key] === 'object'){
// 当前项的值如果为对象则使用递归继续拷贝
objClone[key] = deepClone(obj[key])
}else{
objClone[key] === obj[key];
}
}
}
}
}
JSON的数据转换
var objClone = JSON.parse(JSON.stringify(obj));
jq的extend方法(需安装jq)
/**
* deep:深拷贝为true
* objClone:生成的新对象
* obj:拷贝的对象
*/
$.extend( deep, objClone, obj )