javascript splice()索引问题
我必须给数组添加一些值 代码,例如:javascript splice()索引问题,javascript,splice,Javascript,Splice,我必须给数组添加一些值 代码,例如: temp[0]=new Array("0","0"); temp[1]=new Array("0","0"); temp[2]=new Array("0","0"); temp[3]=new Array("0","0"); temp[4]=new Array("0","0"); vt=new Array("1","0"); temp.splice(3, 0, vt); temp.splice(4, 0, vt); temp[3][1]="R";
temp[0]=new Array("0","0");
temp[1]=new Array("0","0");
temp[2]=new Array("0","0");
temp[3]=new Array("0","0");
temp[4]=new Array("0","0");
vt=new Array("1","0");
temp.splice(3, 0, vt);
temp.splice(4, 0, vt);
temp[3][1]="R";
我预计这一产出:
1 - 0,0
2 - 0,0
3 - 0,0
4 - 1,R
5 - 1,0
6 - 0,0
7 - 0,0
1 - 0,0
2 - 0,0
3 - 0,0
4-1,R
5 - 1,0
6 - 0,0
7 - 0,0
但实际产出是:
1 - 0,0
2 - 0,0
3 - 0,0
4 - 1,R
5 - 1,R
6 - 0,0
7 - 0,0
1 - 0,0
2 - 0,0
3 - 0,0
4-1,R
5-1,R
6 - 0,0
7 - 0,0
有什么想法吗?我认为这是
splice()
函数的索引问题 Javascript数组是对象。将对象放入数组时,基本上就是将对它的引用放入数组中。您在此处将相同的引用放在两个位置。如果更改引用,它将反映在所有其他引用中。您需要插入一个新的,并在两个位置分离对象,以便引用指向不同的对象
所以不是
vt=new Array("1","0");
temp.splice(3, 0, vt);
temp.splice(4, 0, vt);
做
Javascript数组是对象。将对象放入数组时,基本上就是将对它的引用放入数组中。您在此处将相同的引用放在两个位置。如果更改引用,它将反映在所有其他引用中。您需要插入一个新的,并在两个位置分离对象,以便引用指向不同的对象 所以不是
vt=new Array("1","0");
temp.splice(3, 0, vt);
temp.splice(4, 0, vt);
做
巴卢斯的答案是正确的,但作为一个提示;使用
[1,2,3]
代替新数组(1,2,3)
BalusC的答案是正确的,但作为提示;使用[1,2,3]
代替新数组(1,2,3)