Перечисление в 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'];