这个问题真的不好描述,所以不好搜索原因。
遇到这个问题的情况绝大部分是在小程序的开发过程中,因为web的开发很好少会有直接操作对象的,即使是有这种情况,我也会多写两行代码,跳过对象的操作(当然这个时候我还不知道具体因为什么)。
在做一个小程序项目的时候,操作数据面对的大部分是对象,但是在把一个数据赋值给一个新变量,在修改新变量后,原始的数据也跟着修改了。这个问题起始已经困扰我大半年了,上次出现这种情况是在做uni-app时遇到的,我以为是这是dclouod特有的,因为这个我放弃了dcolud(缺乏基础理论是多么大的坑)。
这次做小程序不得不面对,措辞了好久才收到这个问题的答案。
大致原因是:在js里,字符串、数字、布尔、这种称为基础类型是可以直接赋值的,即使是修改后也不会影响原来的数据。但是引用类型比如object,array这种就会出现上面描述的问题。现在发现自己理论好差。
解决方法:var arr1= JSON.parse(JSON.stringify(arr1));