原因:
数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变。
解决方案:
原理就是先把数组转换成字符串再转换成对象 ,这样会新分配一块内存,就不会指向同一个堆中的数据。
例子1: var tmp = JSON.parse(JSON.stringify(array));
本文共 250 字,大约阅读时间需要 1 分钟。
原因:
数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变。
解决方案:
原理就是先把数组转换成字符串再转换成对象 ,这样会新分配一块内存,就不会指向同一个堆中的数据。
例子1: var tmp = JSON.parse(JSON.stringify(array));
转载于:https://www.cnblogs.com/KevinTong/p/11414770.html