Перечисление в Javascript

В JavaScript я собираюсь читать данные (strData). Но данные являются строковыми значениями, но я должен работать с целочисленными значениями.

Например:

intData = strData;

...где strData может быть "A", "B" или "C".

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

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

Спасибо за вашу помощь!

2 ответа

Решение

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

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

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

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

var ENUM = Object.freeze({a: 1});
ENUM['a'];
Другие вопросы по тегам