前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript 数组的深复制和浅复制

javascript 数组的深复制和浅复制

作者头像
web前端教室
发布2018-02-06 11:03:45
1.3K0
发布2018-02-06 11:03:45
举报
文章被收录于专栏:web前端教室web前端教室

这段时间忙的我是欲仙欲死,导致公众号断更了好几天。

但收获也是巨大的,对于JS的一些应用有了一些新的理解,以后我慢慢写出来。

今天简单的写一个javascript里数组的深复制和浅复制。

先看代码:

首先通过for循环,给arr数组添加了内容,

然后声明变量arr2并把arr的值赋给它,

这看起来像是复制了一个数组,

毕竟console.log打印出来的值,

显示arr和arr2的值是一样的,

但这是一种假象,

其实这只是给数组arr添加了一个引用而已,

你对原数组的操作,会在新数组上引起相同的反应。

你看arr[0]='xx',

我们对arr数组进行了操作,

然后再次用console.log打印arr和arr2,

就会看到arr2数组也被修改了,

这就是“浅复制”,被复制的只是数组对象的引用。

现在我们再来看一下深复制:

先看代码:

先声明一个函数:copyArr,它有二个参数,oldArr, newArr,

分别是旧数组和新数组,

然后声明一个变量arr2

在函数中是通过for循环,将arr1的每一项都赋值给新数组arr2,

然后修改arr1的值,

再把arr1和arr2的值,都打印出来,

会发现新数组的值并没有被修改,

这说明这二个数组已经完全没有关联了。

这就是深复制。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档