2010-06-12 3 views
1

배열에 값을 추가해야합니다. 예를 들어자바 스크립트 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";  

내가이 출력 예상 :

 
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

BalusC의 답변을 할 올바른 일이지만, 팁 등; 'new Array (1,2,3)'대신'[1,2,3]'을 사용하십시오 –

답변

5

자바 스크립트 배열은 객체입니다. 배열에 객체를 넣을 때 기본적으로 배열에 객체를 놓습니다. 당신은 여기에 참조를 두 장소에 넣고 있습니다. 참조를 변경하면 다른 모든 참조에도 반영됩니다. 을 삽입하고 참조가 다른 개체를 가리 키도록 대신 두 위치에 객체를 구분해야합니다.

그래서 그 대신

vt=new Array("1","0"); 
temp.splice(3, 0, vt); 
temp.splice(4, 0, vt); 

temp.splice(3, 0, new Array("1","0")); 
temp.splice(4, 0, new Array("1","0")); 
+0

예! 이 일! tnx 야 :) – markzzz

+0

당신은 오신 것을 환영합니다. 이 대답을 받아 들여야합니다 :) – BalusC

+0

좋아, 다시 해냈어 :) tnx! – markzzz