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

Posted kevintong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了相关的知识,希望对你有一定的参考价值。

原因:

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

解决方案:

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

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

以上是关于为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了的主要内容,如果未能解决你的问题,请参考以下文章

怎么在数组中修改一个元素

js中怎么把值放入数组中

php数组的重复值如何过滤掉

js简单算法如何去除一个数组中与另一个数组中的值相同的元素

数组中的元素的索引 是数组下标 还是数组的值

js怎么取一个数组中的奇数位元素或者偶数位元素