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跨域总结
Aug 30 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
怎么清空javascript数组
May 11 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
Aug 17 Javascript
全国省市二级联动下拉菜单 js版
May 10 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
浅谈AngularJS中使用$resource(已更新)
Sep 14 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 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 strtotime函数详解
2009/12/18 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
canvas实现刮刮卡效果
2017/03/14 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python如何实现视频转代码视频
2019/06/17 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
局域网标准
2016/09/10 面试题
行政内勤岗位职责
2014/04/07 职场文书
法学专业求职信
2014/07/15 职场文书
2014年妇女工作总结
2014/12/06 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB