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 相关文章推荐
通过js动态操作table(新增,删除相关列信息)
May 23 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
js遍历子节点子元素附属性及方法
Aug 19 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
Sep 20 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 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时间戳使用实例代码
2008/06/07 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python中的列表知识点汇总
2015/04/14 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
基于Django统计博客文章阅读量
2019/10/29 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
自我介绍演讲稿范文
2014/08/21 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
绿色环保倡议书
2015/04/28 职场文书
初中地理教学反思
2016/02/19 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python