2011-03-31 7 views
0

여기에 무슨 일이 일어나는지 알 수 없습니다 ... 배열을 복사하려고 시도하고 복사본을 섞어서 결합하려고합니다.복사 된 배열에서 JavaScript 메서드가 작동하지 않습니다.

은 내가 JS 파일이 상단에 새로운 배열을 초기화하고이 부하에

var myArray = []; 

파일을 JS

, 나는 일부 myArray에 페이스 북의 API와에 Stickin '결과에서 데이터를 끌어 오전 HTML 주위.

그때 myArray에서 새 변수를 만든 다음 조인과 div 요소의 텍스트를 출력합니다 내가 버튼 클릭에 전화 기능이 : 그것은 분명히 단순화 된 것

var namesList = myArray; 
namesList.join(''); 
$('#my_div').text(namesList); 

,하지만 전제를 는 똑같은.

제 문제는 어레이가 합류하지 않는 것입니다. 그것은 배열 형태로 남아 있고 내가 시도한 어떤 것도 이것을 고쳤습니다. 나는 또한 시도했다 :

var namesList = myArray.slice(); 

var namesList = myArray.slice(0); 

를 아무 소용.

어떻게 : 동일한 기능에서 아무런 문제없이 myArray을 조작하고 필요한 결과를 얻을 수 있습니다. 문제는 함수가 호출 될 때마다 배열을 섞어서 텍스트로 출력 할 수 있어야한다는 것입니다. 이것이 제가 처음에 그것을 복사하는 이유입니다.

내 인생에서 왜 이것이 작동하지 않는지 알 수 없습니다. 여기서해야 할 일은 호출 할 함수의 범위 내에서 변수 복사본을 만들어 셔플하고 결합한 후 인쇄하는 것입니다.

어떻게 수정합니까? 아니면 더 나은 대안이 있습니까? 미리 많은 감사드립니다!

답변

2

배열 참조를 수정하기보다는 문자열을 반환 join() 방법 - 당신이 당신의 코드를 변경해야 : 나는 롤, 너무 피곤했다 알고

var namesList = myArray; 
namelist = namesList.join(''); 
$('#my_div').text(namesList); 
+0

GAH를. – DondeEstaMiCulo

+0

배열을 수정하지 않는다는 사실에 완전히 공백을 두었습니다. 단지 문자열을 반환합니다. 그게 바로 열쇠 야! 고맙습니다!!! – DondeEstaMiCulo

2

namesList가 여전히 배열이기 때문입니다. join() 반환 사용해야하는 문자열 :

var namesList = myArray.join(''); 
$('#my_div').text(namesList); 
2
namesList.join(''); 

이 다음 배열을 결합 떨어진 결과가 발생합니다. 당신이 원하는

namesList = namesList.join(''); 
관련 문제