JavaScript中concat复制数组方法浅析


Posted in Javascript onJanuary 20, 2019

我们在需要进行数组复制的时候可能会想到以下的方法

代码

var arr1 = [1,2,3,4,5];

var arr2 = [];

arr2 = arr1;

console.log(arr1);

console.log(arr2);

执行结果如下:

[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5]

在这个例子中,将数组arr1赋值给了另一个数组arr2。

查看执行结果,似乎复制了数组的内容并创建了相同的数组。

但是,由于数组是“引用类型”的数据,因此它不会复制该值,而只是共享存储该值的内存的位置。

因此,我们编写以下代码

arr2.push(6);

 

console.log(arr1);

console.log(arr2);

执行结果如下

[1, 2, 3, 4, 5, 6]

[1, 2, 3, 4, 5, 6]

根据以上结果可以发现即使我们只给arr2添加新值6,但是数组arr1中也会添加一个6,这就是因为两个

数组都只引用存储值的位置,如果更改任一数组中的数据,两者都会改变。

所以下面我们就来使用concat方法复制数组

我们来看具体示例

var arr1 = [1,2,3,4,5]; 

var arr2 = [];

  

arr2 = arr1.concat();

arr2.push(6);

 

console.log(arr1);

console.log(arr2);

执行结果如下

[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5, 6]

要将另一个数组复制到数组arr2,只需要在复制源arr1中执行concat()即可。

Javascript 相关文章推荐
基于jquery用于查询操作的实现代码
May 10 Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
JavaScript字符串删除重复字符的方法
Dec 25 Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
简单说说angular.json文件的使用
Oct 29 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 Javascript
js在HTML的三种引用方式详解
Aug 29 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 Javascript
JavaScript中import用法总结
Jan 20 #Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
Jan 20 #Javascript
js序列化和反序列化的使用讲解
Jan 19 #Javascript
vue-router传参用法详解
Jan 19 #Javascript
vue-router实现嵌套路由的讲解
Jan 19 #Javascript
vue-router实现编程式导航的代码实例
Jan 19 #Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 #Javascript
You might like
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python openpyxl使用方法详解
2019/07/18 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
Nike香港官网:Nike HK
2019/03/23 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
linux面试题参考答案(5)
2014/09/01 面试题
工程管理专业个人求职信范文
2013/12/07 职场文书
新领导上任欢迎词
2014/01/13 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
房屋租赁意向书
2014/04/01 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
实习生个人总结范文
2015/02/28 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
党员证明信
2015/06/19 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python