利用递归函数实现这样的一个demo
直接上代码
var obj = {
a:111,
b:222,
c:[1,2,{aaa:1,bbb:2}],
d:{
aa:111,
bb:222,
cc:[1,2,3]
}
}
var newobj = {}
function checkarray(para){
return Array.isArray(para);
}
function checkobject(para){
return (para instanceof Object);
}
function copy(obj){
var cc = {};
function checksz(para){
var aa = [];
for(var cell in para){
if(Array.isArray(para[cell])){
aa[cell] = checksz(para[cell]);
}else if(para[cell] instanceof Object){
aa[cell] = checkdx(para[cell]);
}else{
aa[cell] = para[cell]
}
};
return aa;
}
function checkdx(para){
var bb = {};
for(var cell in para){
if(Array.isArray(para[cell])){
bb[cell] = checksz(para[cell]);
}else if(para[cell] instanceof Object){
bb[cell] = checkdx(para[cell]);
}else{
bb[cell] = para[cell]
}
}
return bb;
}
for(var cell in obj){
if(checkarray(obj[cell])){
cc[cell] = checksz(obj[cell]);
}else if(checkobject(obj[cell])){
cc[cell] = checkdx(obj[cell]);
}else{
cc[cell] = obj[cell];
}
}
return cc;
}
var newobj = copy(obj);
console.log(obj);
console.log(newobj);
网友评论