2013-05-14 5 views
-1

하나의 문자열이 있는데, 이것을 분할하여 변수에 넣고 싶습니다.
변수 결과에 배열 값을 밀어 넣으려고합니다.
이것이 제가 시도한 것입니다.
자바 스크립트를 사용하여 변수에 푸시 배열 값

var region = "Rajkot,Jamnagar,Surat"; 
var result; 
var array = region.split(','); 
for (var i=0; i<array.length; i++) 
      { 
       alert(array[i]); 
       result.push(array[i]); 
      } 

하지만 반환 오류 result.push는 함수가 아닙니다. 변수 에 값을 푸시하는 중이고이 결과 변수를 경고하려고합니다. 내 질문을 해결하십시오.
감사합니다.

+0

'var region = "Rajkot, Jamnagar, Surat"; var result = region.split (',');'충분해야합니다. – Utopik

+0

빠른 질문 - 왜 그냥'result = region.split (",");'을하지 않습니까? – Ian

답변

5

당신은 그래서 최종 코드는 것

var result = []; 

result 변수를 초기화해야합니다

var region = "Rajkot,Jamnagar,Surat"; 
var result = []; 
var array = region.split(','); 
for (var i=0; i<array.length; i++){ 
    alert(array[i]); 
    result.push(array[i]); 
} 

그러나 split() 이미 당신이하고자하지 않는 그래서 당신의 for이 불필요 할 수도, 배열을 반환 결과에 추가하기 전에 배열의 요소로 비즈니스 로직을 수행하십시오.

3

난 당신이 Array 프로토 타입의 기능을 사용하기 위해서는

var result = [];

1

, 당신은 실제로 배열을해야합니다 배열로 결과를 초기화 할 필요가 있다고 생각합니다. 지금은 result 변수가 정의되어 있지 않으므로 (따라서 push을 지원할 수 없습니다).

작동하려면 변수 유형이 실제로 배열인지 확인해야합니다. 이것은 다음과 같이 수행 할 수 있습니다

var result = []; 

왜 배열을 추진하고있다

+1

실제로'result'의 값이'undefined '라고 말하면 +1합니다. 그것은 항상 수정을 제안 할뿐만 아니라 OP가 보는 것을 설명하는 더욱 유용한 해답입니다. –

+0

@RayToal : 일부 사람들은 설명보다 직접적인 결과를 선호합니다. 그러나 조금 더 오래 동안 모든 기지를 커버하면서, 둘 다 제공됩니다.^_ ^ –

2

을 (당신이 그렇게 할 수있는 기능을 사용하지 않는 경우 항상 배열을 초기화하는 기억)? split은 배열을 반환합니다.

var region = "Rajkot,Jamnagar,Surat"; 
var result = region.split(','); // This is already an array 
for (var i in result) { 
    alert(result[i]); 
} 

DEMO을 참조하십시오.

관련 문제