微信小程序:data里的数组赋值给变量,修改变量,data数组值也会改变
发布于 4 年前 作者 yongjia 3018 次浏览 来自 分享

问题:newArray执行了倒叙后执行正常,但是data里的array也倒叙了
data:{
array:[
{id:0},{id:1}
]
}

var newArray = this.data.array //倒叙数组 newArray.reverse() console.log(newArray); console.log(this.data.array) //执行结果 [{id:1},{id:0}]//newArray [{id:1},{id:0}]//this.data.array

解决方案:查阅相关资料后,发现这样的赋值并不是真的赋值,而是传递的性质,所以需要将数组array转换json字符串后,才算是赋值

var newArray = JSON.parse(JSON.stringify(this.data.array)); newArray.reverse() console.log(newArray); console.log(this.data.array) //执行结果 [{id:1},{id:0}]//newArray [{id:0},{id:1}]//this.data.array

【注意】这种问题只会出现在你的数组类型是键值对的情况

2 回复

这就是js的基本类型和引用类型的区别

回到顶部