2014-06-26 1 views
-2

Я создал следующее:Javascript битовые добавить из строки

var some_string = 'cb'; 

var a = 1; 
var b = 2; 
var c = 4; 
var d = 8; 

var mask = 0; 

Я хочу, чтобы сохранить A + B + C + D ВАР в маске, которая работает, когда я делаю:

mask |= c; // mask now equals 4 

Проблема заключается в том, что мне нужно добавить значение var из цикла:

mask |= some_string[0] 

Это не работает. Я предполагаю, что я должен преобразовать some_string [0], потому что some_string [0] = Var C

EDIT: с помощью Eval работы ...

mask |= eval(some_string[0]) 

... считая Eval GetS такой плохой рэп, является там другой путь?

+0

Это (предназначенный каламбур) немного запутанным. Что вы ожидаете от вывода? – axelduch

+4

Возможный дубликат переменных [Variable] в Javascript?] (Http://stackoverflow.com/questions/5187530/variable-variables-in-javascript) – CBroe

+1

@CBroe Я не понимаю ... что делает его дублировать этот вопрос? – axelduch

ответ

1

Можете ли вы попробовать использовать объект вместо отдельных варов?

var some_string = 'cb'; 
var obj = { 
    a: 1, 
    b: 2, 
    c: 4, 
    d: 5 
}; 

var mask = 0; 

mask |= obj[some_string[0]]; 

alert (mask); 

http://jsfiddle.net/W26Lx/

+0

Awesome thanks !! :) –

+0

Возможно, вы захотите удалить строку 13 из своего jsfiddle. – Air

Смежные вопросы