码迷,mamicode.com
首页 > 编程语言 > 详细

为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

时间:2019-08-26 20:48:32      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:gif   数据存储   数组   就是   存储   array   组元   为什么   string   

原因:

  数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变。

解决方案:

  原理就是先把数组转换成字符串再转换成对象 ,这样会新分配一块内存,就不会指向同一个堆中的数据。

   例子1: var tmp = JSON.parse(JSON.stringify(array));

为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

标签:gif   数据存储   数组   就是   存储   array   组元   为什么   string   

原文地址:https://www.cnblogs.com/KevinTong/p/11414770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!