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

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

时间:2019-11-08 20:58:35      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:解决   多层   原因   ring   数据   var   运用   str   素数   

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

原因就是:

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

 

解决方法:

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

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

标签:解决   多层   原因   ring   数据   var   运用   str   素数   

原文地址:https://www.cnblogs.com/zy-df/p/11823043.html

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