zoukankan      html  css  js  c++  java
  • 深拷贝

    1.递归

    var data = [1, 2, 3]
    var data2={"x":11,"y":22}

    var deepcopy = function(obj) {
    const t = typeof obj
    let o = Array.isArray(obj) ? [] : {}
    if(t === "object") {
    for(let i in obj) {
    o[i] = deepcopy(obj[i])
    }
    }else{
    return obj
    }
    return o;
    }

    var copyData = deepcopy(data)
    copyData[0] = 4
    var copyData2 = deepcopy(data2)
    copyData2.x = 4
    console.log(data)              //[1,2,3]
    console.log(copyData)      //[4,2,3]
    console.log(data2)            //{"x":11,"y":22}
    console.log(copyData2)    //{"x":4,"y":22}

    2.JSON对象的stringify和parse

    var deepcopy2 =function(obj){
    var str,reObj = Array.isArray(obj)?[]:{}
    if(window.JSON){
    str = JSON.stringify(obj);
    reObj =JSON.parse(str);
    }
    return reObj
    }

    var copyData = deepcopy2(data)
    copyData[0] = 4
    var copyData2 = deepcopy2(data2)
    copyData2.x = 4
    console.log(data)              //[1,2,3]
    console.log(copyData)      //[4,2,3]
    console.log(data2)            //{"x":11,"y":22}
    console.log(copyData2)    //{"x":4,"y":22}

  • 相关阅读:
    gitlab11.5.4 配置邮件提醒
    docker 安装 mongodb
    dd测试
    k8s部署rocketmq 双主
    rocketmq 多master集群部署
    Kubernetes中的Taint污点和Toleration容忍
    Zookeeper分布式集群搭建
    初识ZooKeeper
    hdu 5071(2014鞍山现场赛B题,大模拟)
    hdu 5073
  • 原文地址:https://www.cnblogs.com/youngMe/p/11097040.html
Copyright © 2011-2022 走看看