2012-08-02 6 views
13

에 문자열을 변환 난 내가자바 스크립트/JQuery와 배열

을 반복 할 수 있도록 내가 어떻게 해결하는

var trainindIdArray = traingIds.split(','); 
$.each(trainindIdArray, function(index, value) { 
    alert(index + ': ' + value); // alerts 0:[1 , and 1:2] 
}); 

을 시도 배열에이 변환 할 지금 문자열

var traingIds = "${triningIdArray}"; // ${triningIdArray} this value getting from server 
alert(traingIds) // alerts [1,2] 
var type = typeof(traingIds) 
alert(type) // // alerts String 

이 이?

답변

11

, ${triningIdArray} 단지 인용 잃게 JS 배열 리터럴 구문 대체 서버 측 자리이다. 그래서 :

var traingIds = ${triningIdArray}; 

하지

var traingIds = "${triningIdArray}"; 
4

변경

var trainindIdArray = traingIds.split(',');

기본적으로 []을 제거합니다

var trainindIdArray = traingIds.replace("[","").replace("]","").split(',');

에 다음 문자열을 분할

54

배열 리터럴 표기법은 여전히 ​​유효 JSON, 당신 때문에 변환 할 수 use JSON.parse() 수 있습니다. 그 문자열을 배열에 넣고 거기에서 그 값을 사용하십시오. 케이스 보인다 같이 가정

var test = "[1,2]"; 
parsedTest = JSON.parse(test); //an array [1,2] 

//access like and array 
console.log(parsedTest[0]); //1 
console.log(parsedTest[1]); //2 
+0

... 나는 그 몰랐어요. 감사합니다 – maverickosama92

+0

좋은 접근 ... – RubyOnRails

3

체크 이것을 :) 좋은

var traingIds = "[1,2]"; // ${triningIdArray} this value getting from server 
alert(traingIds); // alerts [1,2] 
var type = typeof(traingIds); 
alert(type); // // alerts String 

//remove square brackets 
traingIds = traingIds.replace('[',''); 
traingIds = traingIds.replace(']',''); 
alert(traingIds); // alerts 1,2   
var trainindIdArray = traingIds.split(','); 

​for(i = 0; i< trainindIdArray.length; i++){ 
    alert(trainindIdArray[i]); //outputs individual numbers in array 
    }​ 
+1

당신은 eval을 사용할 수 있습니다. 예. eval ("[1,2]") # => [1,2] –

+0

놀라워요 @ Sam Kah Chiin의 의견은 답이 아닙니다. 이 질문에 정말 큰 도움이됩니다. 그것은 일렬로 늘어서 있고 단순하다. 감사합니다 –

+1

@YoungMillie, 자바 스크립트에서'eval'을 실제로 사용하면 eval을 부적절하게 사용하면 주입 공격 코드가 열리므로 위험 할 수 있습니다. 이것을 확인하십시오 [stackoverflow] (https://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea) :) –