当改变数组的某一个对象里的元素的时候,为什么其他对象里的元素也发生改变了

当运用多层循环的时候,会出现一种情况,就是当想改变数组的某一个对象里的元素的时候,其他对象里的元素页跟着发生了改变。根据条件已经定位到了某一个对象,但是改变之后发现,其他的还是也都改变了。

原因就是:

数组是引用对象,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以赋值对象都指向堆同一个数据,因此改变其中一个数组对象里的元素,其他对象里的元素也会发生改变

 

解决方法:

var arr = JSON.parse(JSON.stringify(array));

posted @ 2019-11-08 20:17  cookie_cong  阅读(1021)  评论(0编辑  收藏  举报