json js 深拷贝
时间: 2023-10-24 07:28:39 浏览: 89
深拷贝是指在复制对象时创建一个完全独立的对象,而不是只复制对象的引用。这样做的好处是可以避免在修改拷贝对象时影响到原始对象。
在 JavaScript 中,深拷贝一个 JSON 对象可以使用如下代码:const formData = JSON.parse(JSON.stringify(data)) [1]。
除此之外,还可以使用递归函数来实现深拷贝。下面是一个示例函数:
function copyObj(obj){
var newobj = {};
for(let key in obj){
if(typeof obj[key] == "object"){
newobj[key] = copyObj(obj[key]);
}
else{
newobj[key] = obj[key];
}
}
return newobj;
}
例如,调用 copyObj({name:"张三疯",sex:"男"}) 会返回 {name:"张三疯",sex:"男"} 。
这个函数通过递归遍历对象的所有属性,对于对象类型的属性,将其递归调用 copyObj 函数进行深拷贝,对于非对象类型的属性,直接赋值给新对象。最终返回完全独立的对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [JSON实现深拷贝的方法](https://blog.csdn.net/qq_44603011/article/details/124488810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [用js实现json对象的深拷贝?(力扣)](https://blog.csdn.net/weixin_56608347/article/details/127805181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文