美文网首页
关于几个拷贝的问题

关于几个拷贝的问题

作者: kalrase | 来源:发表于2018-11-17 21:19 被阅读0次

数组浅拷贝

var arr=[1,2,3];
 var arr2=arr;
arr.push(4);

数组深拷贝

 var arr=[1,2,3];
 var arr2=[];
 for(var i=0;i<arr.length;i++){
    arr2[i]=arr[i];
 }

复合数组深拷贝

var arr=[1,2,{name:"123"}];
// console.log(arr.constructor.name);
// var obj={}
// var arr2=[1,2];


//深拷贝

function deepClone(argu){

    if(argu.constructor.name==="Array"){//为数组

        var arr=[];

        for(var i=0;i<argu.length;i++){
                
            if(typeof argu[i]==="object"){//为对象或数组

                arr.push(deepClone(argu[i]));

            }else{//如果值是值类型,则直接添加
                arr.push(argu[i]);
            }

        }

        return arr;


    }else{//为对象

        var obj={};

        for(var x in argu){
            
            if(typeof argu[x]==="object"){
                obj[x]=deepClone(argu[x]);
            }else{
                obj[x]=argu[x];
            }

        }

        return obj;

    }

}


var a=[{
    person:[1,2,3,{
        name:"rase"
    }]
}]

var res=deepClone(a);
a[0].person[3].name="kalrase";

console.log(res);

相关文章

  • 关于几个拷贝的问题

    数组浅拷贝 数组深拷贝 复合数组深拷贝

  • iOS 对象的深拷贝浅拷贝的问题 copy mutableCop

    记录一个比较坑爹的初级问题 关于iOS 对象的深拷贝浅拷贝的问题 copy和mutableCopy

  • iOS 关于深拷贝浅拷贝问题

    1、对于一个字符串来讲的话,如果是用strong来修饰和用copy修饰的区别 strong修饰相当于是浅拷贝,co...

  • 关于对象的深浅拷贝问题

    首先,介绍一下相关概念。当我们讨论深浅拷贝的时候,我们针对的是引用类型对象,毕竟对于普通类型,拷贝就是传值,其表现...

  • Copy基础理解(一)

    关于oc深浅拷贝问题可能做过ios开发的都有了解到,尤其是面试特别喜欢问深浅拷贝的问题.但大多有点误区,即便是有几...

  • PHP之剑走偏锋的DeepCopy

    php的深拷贝和浅拷贝问题,普通变量对象的赋值 = 是深拷贝,& 是浅拷贝。 输出结果: 类对象的拷贝问题就得看下...

  • Chapter 13 Copying Controll

    这一章讲的更多是关于拷贝初始化, 拷贝赋值, 移动初始化, 移动赋值和析构的问题 拷贝初始化 相比于直接初始化的方...

  • 关于几个澄清的问题

    一、土豪 毫无仇视的意思。土豪有土豪的生活方式,我有我自己的生活节奏。不追寻,不同化,不等于仇视。 所以不存在小吉...

  • Zero-Copy

    服务器将硬盘上的文件,传给用户,需要几次拷贝?解决这个问题,需要明白具体的工作流程是什么? 关于哪个步骤需要拷贝:...

  • C++-03、浅拷贝、深拷贝

    浅拷贝 浅拷贝重复释放空间的问题 深拷贝

网友评论

      本文标题:关于几个拷贝的问题

      本文链接:https://www.haomeiwen.com/subject/obwifqtx.html