首页 > 其他分享 >js 深度拷贝递归生成

js 深度拷贝递归生成

时间:2022-11-24 13:12:20浏览次数:47  
标签:return 递归 param js deepClone let key 拷贝 cloneTarget

function deepClone(param){
   //判断时间
     if(param instanceof date) return new Date(param);
    //如果普通类型直接返回
    if(typeof param !== 'object') return param;

    //如果是则直接回调当前函数进行分解
    let cloneTarget = new param.constructor;
    for( let key in param){
        cloneTarget[key] = deepClone(param[key]);
    }

    return cloneTarget;
    
}


let obj = {
    name:'taotao',
    age:10,
    address:{
        city:'bj',
        living:{
            novers:true,
            time:10
        }
    
    }
}

let newObj = deepClone(obj)
console.log(newObj)

 

标签:return,递归,param,js,deepClone,let,key,拷贝,cloneTarget
From: https://www.cnblogs.com/qutao125/p/16921535.html

相关文章

  • [原创]C# JSON节点的替换整体套路
    privatestaticvoidreplaceSelfJSONFromChild(){stringgroupJSON="{\"zone\":\"海淀\",\"zone_en\":\"haidian\",'location':{x:1,y:2}}";......
  • js016-词法分析
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body>//词法分析的顺序(函数未执行之前):1-形参,2-局部变量,3-函数。......
  • jsonpath 表达式
    在进行对接数据时,经常会遇到对接的是接口数据。关于在对接接口类型的数据,数据返回的为json数组形式的数据,需要讲数组先解析出来,主要是通过 jsonpath表达式。jsonpath......
  • Java对象拷贝原理剖析及最佳实践
    作者:宁海翔1前言对象拷贝,是我们在开发过程中,绕不开的过程,既存在于Po、Dto、Do、Vo各个表现层数据的转换,也存在于系统交互如序列化、反序列化。Java对象拷贝分为深拷贝......
  • JSON.parseObject与JSONObject.parseObject的区别
    JSON和JSONObject先看一下源码JSON源码publicabstractclassJSONimplementsJSONStreamAware,JSONAware{publicstaticJSONObjectparseObject(Stringtext){......
  • js014-一个标签绑定两个相同事件的方法
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><divid="i1">aabbcc</div><script>vard=do......
  • JsonResult向前端返回值,报错500
    1,问题原因因为返回信息为json对象,我在controller方法所在的入口类上,添加的注解是:@Controller而@Controller是不适合返回json内容的2,解决方法方法一:不影响其它方法......
  • js015-事件的捕捉与冒泡
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><divid="i1"style="width:300px;height:300px;backgrou......
  • js重组复杂数据
    <script>varlist=[{type:1,cat:"F1",class:"white",total:12},{type:1,cat:"F2#1",class:"white",total:12},......
  • NodeJS下载文件并显示下载进度
    constfs=require('fs');constrequest=require("request")constprogress=require('progress-stream')consthttps=require("https")consthttp=require("h......