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 相关文章推荐
Javascript 错误处理的几种方法
Jun 13 Javascript
javascript 面向对象全新理练之原型继承
Dec 03 Javascript
jQuery代码优化之基本事件
Nov 01 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
vue-router:嵌套路由的使用方法
Feb 21 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
JS重学系列之聊聊new操作符
Mar 04 Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 Javascript
JS window对象简单操作完整示例
Jan 14 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
PHP循环获取GET和POST值的代码
2008/04/09 PHP
PHP array_push 数组函数
2009/12/26 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
php简单分页类实现方法
2015/02/26 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
毕业自荐信
2013/12/16 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
求职信格式范文
2015/03/19 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
2019银行竞聘书
2019/06/21 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python