【uniapp奇葩问题】把a变量赋值给b变量,b变量修改后a变量也随之改变
明显只修改了a变量 但是list变量却也变化了。就这么个简单问题,但是不知道为啥 困扰好久了。把a变量赋值给b变量,b变量修改后a变量也随之改变。
·
把a变量赋值给b变量,b变量修改后a变量也随之改变
var list = [{
days: '2023-05-01',
active: false,
},
{
days: '2023-05-02',
active: false,
},
]
let data_info = this.data_info
console.log(list[0].active+'------------------test1')
let a=list
a[0].active=true
let b=list
console.log(list[0].active+'------------------test2')
打印结果如下
13:35:45.810 false------------------test1 at components/calen.vue:139
13:35:45.814 true------------------test2 at components/calen.vue:143
明显只修改了a变量 但是list变量却也变化了。就这么个简单问题,但是不知道为啥 困扰好久了。
已经知道怎么回事了
大致原因是:在js里,字符串、数字、布尔、这种称为基础类型是可以直接赋值的,即使是修改后也不会影响原来的数据。但是引用类型比如object,array这种就会出现上面描述的问题。现在发现自己理论好差。
解决方法:var arr1= JSON.parse(JSON.stringify(arr1));
————————————————
版权声明:本文为CSDN博主「zepcjsj0801」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zepcjsj0801/article/details/111148921
更多推荐
已为社区贡献1条内容
所有评论(0)