function qCopy(item){ if(!item && typeof item !=="object"){ return; } var a=Array.isArray(item)?[]:{}; for(var i in item){ if(typeof item[i]==="object"){ a[i]=qCopy(item[i]); }else{ a[i]=item[i]; } } return a; } var c=["1","2","3"]; var d={ a:{ b:"sdfsdf", c:["1","e","t"] }, c:{ b:{ d:"sdsd" } }, d:"sdsd", e:1213, f:["w","t"], h:function(){ return "sdf"; } } var b=qCopy(d); console.log(b);