2014-12-08 3 views
0

В Javascript Я собираюсь прочитать данные (strData). Но данные являются значениями String, но мне нужно работать с значениями Integer.Enum in Javascript

Например:

intData = strData; 

... где strData может быть "А", "В" или "С".

Но intData должно быть 1 для «A», 2 для «B» или 3 для «C».

Я мог бы просто сделать заявление If-else, но я должен получить strData очень часто. В этом случае мне всегда нужно «if-else» содержимое strData. Поэтому мне нужно что-то, чтобы код был как можно короче. Одноразовое выделение значений Integer для значений String. Как мне это нужно?

Благодарим за помощь!

ответ

3

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

Например (транскрипт из Chrome отладчика консоли):

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

Ok, но это не так, как это? ... intData = ({"A": 1, "B": 2, "C": 3}) strData; – Kevin

+0

Может быть. Ярлыки свойств в объектных литералах JavaScript могут быть указаны или нет. Попробуй! –

+0

Он работает точно так же, как вы писали выше. Но мне пришлось использовать «» для A, B и C. Спасибо Дэвиду и у меня хороший день :-) – Kevin

1

Я думаю, вы должны использовать Object.Freeze с простым объектом:

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