您的位置:首页 > 其它

复杂数组以及对象的深度拷贝

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐