数组的深浅拷贝

var a = [1,2,3];
var b = a;
b[0] = 5;
console.log(a,b);    // [5,2,3],[5,2,3]

像上面直接赋值的方式就是浅拷贝,但很多时候这并不是我们想要的结果,其实我们想要的是a数组不变,不是吗?

方法1:slice函数

对于array对象的slice函数,返回一个数组的一段。(仍为数组)
arrayObj.slice(start, [end])

var a = [1,2,3]
var b = a.slice(0)
b[0] = 5
console.log(a,b)    // [1,2,3], [5,2,3]

方法二:concat方法

concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var a = [1,2,3]
var b = a.concat()
b[0] = 5
console.log(a,b)      // [1,2,3], [5,2,3]

荆轲刺秦王

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,551评论 0 6
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,754评论 0 4
  • 本章内容 使用对象 创建并操作数组 理解基本的 JavaScript 类型 使用基本类型和基本包装类型 引用类型的...
    闷油瓶小张阅读 805评论 0 0
  • 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量...
    一木_qintb阅读 1,744评论 0 1
  • 夜书所见 作者:叶绍翁 萧萧梧叶送寒声,江上秋风动客情。知有儿童挑促织,夜深篱落一灯明。
    徐若腾阅读 201评论 0 0

友情链接更多精彩内容