今天我遇到了一个问题,当请求接口后得到一个数组,这个数组在后面会用于比较,但也会改变,所以这个数组同时赋值给两个变量,
本来想着当在其他方法中改变其中一个变量,
在后来可以将两个变量用于比较
但是我发现其中一个改变,另一个也跟着改变。
后来发现,javascript中引用类型存在堆中,基本类型存在栈中
进入页面请求一个数据res.data this.a = res.data this.b = res.data 在另一个方法中我对a重新赋值了 this.a = 新的数组 在另一个方法中我要用到a和b做比较 //当比较的时候我发现不对啊 //this.b跟着this.a发生了改变
解决办法:
将其中一个转成基本类型,当用到的时候在转回来
进入页面请求一个数据res.data this.a = res.data this.b = res.data.join()//数组转成字符串 在另一个方法中我对a重新赋值了 this.a = 1 在另一个方法中我要用到a和b做比较 console.log(this.a) console.log(this.b) this.b = this.b.split(",")//字符串转回数组,得到新的数组 这样this.b就不会跟着this.a的变化而变化了