首页 > 编程知识 正文

数组浅拷贝和深拷贝的区别,vector深拷贝浅拷贝

时间:2023-05-04 16:03:58 阅读:32005 作者:4735

了解什么是深拷贝和浅拷贝,如何制作深拷贝,在了解深拷贝之前了解堆和堆栈

3358www.Sina.com/存储基本数据类型的值(引用或常量)栈区存储引用数据类型的值

3358www.Sina.com/:地址3358www.Sina.com/:在内存中创建新的复制对象并分配引用

二、序列深拷贝0 .浅拷贝

vararr=[ 1,2,3,4 ] var new arr=arr for (I=0; iarr.length; I ) newarr(I )=arr ) I ) newarr.pop ) ) console.log ) arr; //[ 1,2,3 ]控制台. log (new arr ); //[ 1,2,3 ]1. for循环复制

vararr=[ 1,2,3,4 ] var new arr=[ ] for (I=0; iarr.length; I ) newarr(I )=arr ) I ) newarr.pop ) ) console.log ) arr; //[ 1,2,3,4 ]控制台. log (new arr ); //[ 1,2,3 ]2. slice () ) ) ) ) ) ) ) )。

vararr=[ 1,2,3,4 ] var new arr=arr.slice (0) newArr.pop ) (console.log ) arr ); //[ 1,2,3,4 ]控制台. log (new arr ); //[ 1,2,3 ]3. concat () ) ) ) ) ) ) ) )。

vararr=[ 1,2,3,4 ] var new arr=[ ].concat (arr ) for ) I=0; i arr.length; I ) newarr(I )=arr ) I ) newarr.pop ) ) console.log ) arr; //[ 1,2,3,4 ]控制台. log (new arr ); //[ 1,2,3 ]4. es6的扩展运算符…

vararr=[ 1,2,3,4 ] var new arr=[ . arr ] new arr.pop (控制台. log (arr ); //[ 1,2,3,4 ]控制台. log (new arr ); //[ 1,2,3 ]三、对象深度复制方法1 :使用1:JSON.parse(JSON.Stringify(obj ) );

var obj={ name:'zhangsan ',age :12 } var obj1=JSON.parse (JSON.stringify () obj ); obj1.name='lisi '; 控制台. log (obj 1,obj )方法2 :第三方库lodash中的克隆深度

var _=请求(lo dash ); var obj={ name:'zhangsan ',使用age:18}//clonedeep方法的varobj2=_.clonedeep(obj ); obj2.age=20; 控制台. log (obj; //{ name: 'zhangsan ',age:18}console.log(obj2); //{ name: 'zhangsan ',age: 20 } )四、结语深浅文案是常见的面试问题之一,不难,面试的时候能提高一口,就能证明基础很好,面试官也很基础看看这个,这个是堆区再去~谢谢!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。