我必须为数组添加一些值。
代码例如:
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,R 6 - 0,0 7 - 0,0
有什么想法吗?我认为这是splice()
函数的索引问题!
答案 0 :(得分:5)
Javascript数组是对象。将对象放入数组时,基本上是在数组中引用它。你在这里把相同的引用放在这两个地方。如果更改引用,它将反映在所有其他引用中。您需要在两个位置插入 new 和单独的对象,以便引用指向不同的对象。
所以而不是
vt=new Array("1","0");
temp.splice(3, 0, vt);
temp.splice(4, 0, vt);
DO
temp.splice(3, 0, new Array("1","0"));
temp.splice(4, 0, new Array("1","0"));