微信小程序修改二维数组某个键里的值,其他键的数据跟着改了?

小程序 文章 2021-03-13 21:41 106 0 全屏看文

微信小程序修改二维数组某个键里的值,其他键的数据跟着改了?The WeChat applet modifies the value of a key in a two-dimensional array, but the data of other keys is also changed?

微信小程序修改二维数组某个键里的值,其他键的数据跟着改了?

console.log出来 nowindex = 2 index = 3 但是赋值还是给全部的 nowindex 都赋值

换成下面的写法也不行 要改所有的now_index下的都跟着改了 是不是bug啊 真的很伤脑筋

console.log Now it comes out that nowindex = 2, index = 3, but the assignment is still given to all nowindex. It's not good to change the following way. You need to change all now_ All of the indexes have been changed. Is it a bug? It's really troublesome

回答:

Mr.Zhao:

没学好js,这就是BUG

第二:请指点下
Mr.Zhao:js 数组深浅拷贝  百度搜搜吧
第二:请指点下
Admin:你这是一个数组,然后浅拷贝到一个大数组里面,你的里面的单独的一个小数组相当于一个指针,指向的是同一个,你改一个其余的也就跟着变了
崖月减肥中,不瘦三十斤不换名字:哈哈,回答真的是不留情面啊。。。
TTc:

就单说你这段代码

idSelect = 1的时候变量是驼峰命名

其他命名又使用下划线命名了

还有这个名字:

member am choose info

这个名字起的就说是真的很妙了,应该是在工地附近的厕所里学的英语。

崖月减肥中,不瘦三十斤不换名字:

可以参考一下这份文档,基本可以解答你的疑惑。

https://www.jianshu.com/p/f4329eb1bace

然后了解一下js堆内存和栈内存区别,灵活使用es6语法的 ‘...’ 这个符号,可以很轻松的进行对象赋值等操作。

你这种对象污染应该就是你使用同一对象赋值进数组的原因。

最小化复现对象污染可以这样:

var a=[1,2];

var b=a;

b[0]=2;

console.log(a); // 打印的结果是[2,2]

修改第二句赋值为:var b = [...a];

那么对b进行修改,a的值就不会变了。

-EOF-