复杂数组以及对象的深度拷贝
2018-03-06 10:18
267 查看
//测试用例 var obj = { name: "ceshi", age: 12, list: [{ name: "ceshi2", age: 13 }, { name: "ceshi3", age: 14 }] };方法一:利用JSONvar str=JSON.stringify(obj);
//验证
obj.list[0].name="new123";
var newObj=JSON.parse(str);方法二:递归function clone(obj){
var newObj;
//数组类型的拷贝
if (obj instanceof Array) {
newObj=[];
var i=obj.length;
while(i--){
newObj[i]=clone(obj[i]);
}
return newObj;
}
//对象类型的拷贝
else if(obj instanceof Object){
newObj={};
for (var k in obj) {
newObj[k]=clone(obj[k]);
}
return newObj;
}
else {
return obj;
}
}
var newObj=clone(obj);
obj.list[0].name="OK";
alert(obj);
相关文章推荐
- 字符串,数组和字典的简单本地存储!以及复杂类型对象的存储
- java笔记:关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(下)
- 使用JSON.parse(JSON.stringify(test))对对象、数组的深度拷贝
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- js 数组和对象的深度拷贝
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- java笔记:关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(上)
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题
- javascript 数组以及对象的深拷贝的方法
- java笔记:关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(上)
- javascript 数组以及对象的深拷贝的方法
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- jquery 深度拷贝对象、数组
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(上)
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(下)
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递