2014-12-08 3 views
0

자바 스크립트에서 데이터 (strData)를 읽으려고합니다. 그러나 데이터는 문자열 값이지만 Integer 값으로 작업해야합니다. 예를 들어자바 스크립트의 열거 형

:

intData = strData; 

... strData는 "A", "B", 또는 "C"가 될 수있다.

그러나 intData은 "A"의 경우 1, "B"의 경우 2, "C"의 경우 3이어야합니다.

If-else 문을 수행 할 수는 있지만, strData을 자주 가져야합니다. 이 경우, 나는 항상 "if-else"내용을 strData으로 가져야합니다. 그래서 코드를 가능한 한 짧게 유지해야합니다. Integer 값을 String 값에 일회 할당합니다. 나는 그것을 어떻게 극복해야합니까?

도움 주셔서 감사합니다.

답변

3

intData = ({ A: 1, B: 2, C: 3})[strData]

예를 들어 (크롬 디버거 콘솔에서 성적 증명서) : 나는 당신이 일반 개체와 Object.Freeze를 사용한다고 생각

> (function() { var strData = "C"; return ({ A: 1, B: 2, C: 3})[strData]; })() 
<- 3 
+0

좋아,하지만이처럼하지? ... intData = ({ "A": "B": 2, "C": 3}) strData; – Kevin

+0

둘 중 하나 일 수 있습니다. 자바 스크립트 객체 리터럴의 속성 레이블은 따옴표로 묶을 수도 있고 그렇지 않을 수도 있습니다. 시도 해봐! –

+0

위와 똑같이 작동합니다. 하지만 A, B, C에 대해 ""사용해야했습니다. David에게 감사 드리며 좋은 하루 보내실 수 있습니다 :-) – Kevin

1

:

var ENUM = Object.freeze({a: 1}); 
ENUM['a'];