js javascript实现对象数组的浅拷贝和深拷贝

硅谷探秘者 2711 0 0

概念

浅拷贝

        只会拷贝一层,如果数组中是对象,则只会拷贝对象引用,如果是基本数据类型则会拷贝值。

 深拷贝

        多层次拷贝,如果数组中是对象,则会连同对象一起拷贝。

 concat方法实现浅拷贝

var a=[{id:1},{id:2},{id:3}];
var b=a.concat();
b[0].id=0;
console.log(a);
console.log(b);

slice方法实现浅拷贝

var a=[{id:1},{id:2},{id:3}];
var b=a.slice();
b[0].id=0;
console.log(a);
console.log(b);

assign方法实现浅拷贝

var a=[{id:1},{id:2},{id:3}];
var b=Object.assign({}, a);
b[0].id=0;
console.log(a);
console.log(b);

使用JSON.parse方法实现深拷贝

var a=[{id:1},{id:2},{id:3}];
var b=JSON.parse(JSON.stringify(a));
b[0].id=0;
console.log(a);
console.log(b);


评论区
请写下您的评论...
暂无评论...
猜你喜欢
前端(h5) 2248 functioncopyArr(arr){ varout=[], i=0, len=arr.length; for(;ilen;i++){ if(arr[i]instanceofArray){ out[i]=this.copyArr(arr[i]); }else{ out[i]=arr[i]; } } returnout; }
前端(h5) 3331 语法:varmap=newMap();属性:size返回集合中元素量方法:clear从映射中移除所有元素。delete从映射中移除指定元素。forEach映射中每个元素执行指定操作。get
weblog 4105 vue使用v-for遍历遍历splic(...)方法使用请参考:http://www.jiajiajia.club/blog/artical/262!DOCTYPEhtmlhtml
前端(h5) 1637 html纯js图片懒加载html纯js图片懒加载案例代码下载地址:http://www.jiajiajia.club/file/info/JA67P0
html图片懒加载 1291 js图片懒加载lazyLoading.html测试页面
算法基础 1300 ]=0; System.out.println(a[0]+""+b[0]); }结果打印是10说明一位clone方法是ba并不是同一个二位clone方法测试代码public
前端(h5) 1999 js(分钟:秒)倒计时varmaxtime=res.data.answerMsg.surplus;vartimer=setInterval(function(){if(maxtime=0
前端(h5) 3288 1.锚点定位很简单两行搞定:ahref="#anchorName"点击跳转到anchorName位置/aaname="anchorName"anchorName/a2.js代码,并带滑动效果
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1 2024-08  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。