JavaScript中数组的错误是什么?

JavaScript中数组的错误是什么?,javascript,arrays,Javascript,Arrays,javascript中的奇怪情况: var arr1=new Array(); var arr2=new Array(); arr1=[[1,2],[3,4]]; for (i=0;i<arr1.length;i++) { arr2[i]=arr1[i]; } alert(arr2[1][0]); //-> 3 arr1[1][0]=10; alert(arr2[1][0]); //-> 10 var arr1=新数组(); var arr2=新数组(); arr1=[[1

javascript中的奇怪情况:

var arr1=new Array();
var arr2=new Array();
arr1=[[1,2],[3,4]];
for (i=0;i<arr1.length;i++) {
 arr2[i]=arr1[i];
}
alert(arr2[1][0]); //-> 3
arr1[1][0]=10;
alert(arr2[1][0]); //-> 10
var arr1=新数组();
var arr2=新数组();
arr1=[[1,2],[3,4]];
对于(i=0;i=3
arr1[1][0]=10;
警报(arr2[1][0]);//->10

我不明白为什么会发生这种情况

您在第3行中构建了一个数组

在for循环中,不克隆内部数组,只复制指向它的指针。因此,如果以后在
arr1
中更改内部数组的内容,也会影响
arr2

这里没有虫子

如果要克隆内部阵列,请使用以下方法:

for (i=0;i<arr1.length;i++) {
 arr2[i] = arr1[i].slice(0);
}
(i=0;i)的


在第3行中构建一个数组

在for循环中,不克隆内部数组,只复制指向它的指针。因此,如果以后在
arr1
中更改内部数组的内容,也会影响
arr2

这里没有虫子

如果要克隆内部阵列,请使用以下方法:

for (i=0;i<arr1.length;i++) {
 arr2[i] = arr1[i].slice(0);
}
(i=0;i)的


arr1和arr2都是数组的数组;因此,arr2由与arr1相同的数组集组成,因此分配给arr1[i]的元素“神奇地”显示为arr2[i]的相同元素.

arr1和arr2都是数组的数组;因此,arr2由与arr1相同的数组集组成,因此分配给arr1[i]的元素“神奇地”显示为arr2[i]的相同元素。

您必须克隆数组……如下所示

var arr2 = arr1.slice(0);

您必须克隆阵列…如下所示

var arr2 = arr1.slice(0);

Javascript按引用而不是按值分配数组Javascript按引用而不是按值分配数组value@CC我猜你错过了比赛quotes@CC当前位置我猜你错过了报价