关于js数组浅拷贝的问题
2020-08-14 本文已影响0人
Eirmood


问题:在调用方法前把数据data=[]清空了,为什么后面调用的时候数据还是不断堆集?
让我们打印一下link

问题出在了data=link这步赋值操作上,浅拷贝就是复制一份引用,所有引用对象都指向一份数据,并且都可以修改这份数据,也就是说data 和 link指向了同一块内存.
解决方法:
1、扩展运算符
data = [...link]
2、使用for循环
if (key > 0) {
data = []
for (var i = 0; i < link.length; i++) {
data.push(link[i]);
data.push('哈哈');
}
}