当改变数组的某一个对象里的元素的时候,为什么其他对象里的元素也发生改变了
当运用多层循环的时候,会出现一种情况,就是当想改变数组的某一个对象里的元素的时候,其他对象里的元素页跟着发生了改变。根据条件已经定位到了某一个对象,但是改变之后发现,其他的还是也都改变了。
原因就是:
数组是引用对象,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以赋值对象都指向堆同一个数据,因此改变其中一个数组对象里的元素,其他对象里的元素也会发生改变
解决方法:
var arr = JSON.parse(JSON.stringify(array));