2014-02-12 4 views
0

Хотя этот вопрос касается данных, это не касается конкретно.Как получить содержимое переменной, которой я не знаю его имя

У меня есть данные init, хранящиеся в переменных. Имя переменной меняется, так как у меня есть несколько данных на странице. Я пытаюсь собрать содержание этих переменных, собирая имя переменной, и я не знаю, как я могу позже использовать «строка» Я собранное в качестве переменной

Например:

var var_1_id_0 = $('.item1').datatable(); 
var var_1_id_1 = $('.item2').datatable(); 
var var_1_id_2 = $('.item3').datatable(); 

// later in the code. 
var varname = 'var_1_id'+'_0'; 

// varname now holds the string 'var_1_id_0' which is the first variable. 

Мой вопрос: как я могу использовать строку varname 'var_1_id_0' как переменную 'var_1_id_0'?

Я надеюсь, что имеют смысл.

Thanks

+0

что-то вроде 'yourObject [VarName]' Вы должны были бы проверить его как 'если (yourObject.hasOwnProperty (VarName)) {}' –

+0

я не хочу, чтобы объект и добавить свойства к нему. если я это сделаю, мне придется получить глобальный var или иметь что-то действительно уродливое. есть ли способ без? я думал, может быть, 'eval', но это не работает. –

+0

Используйте [IIFE] (http://en.wikipedia.org/wiki/Immediately-invoked_function_expression), чтобы запустить свой материал и использовать' var', чтобы сделать его локальным внутри область действия. –

ответ

2

Невозможно. Чем ближе решение это одна:

var datatable={};//A new Object.Arrays doesn't work property for this. 

datatable['var_1_id_0'] = $('.item1').datatable(); 
datatable['var_1_id_1'] = $('.item2').datatable(); 
datatable['var_1_id_2'] = $('.item3').datatable(); 

// later in the code. 
var varname = 'var_1_id'+'_0'; 
console.log(datatable[varname]); 
+0

не может сделать объект. без создания глобального, которого я не хочу. –

+0

Да, я очень хорошо осведомлен о облаках благодаря разъяснению. Однако. как мой код настроен прямо сейчас, если я не делаю что-то действительно уродливое или не превращаю объект в глобальный, я не могу использовать объект. –

+0

Итак, как вы знаете, сколько вам нужно var id? Вы проверяете длину или просто кодировку имен var? –

0

Попробуйте так:

вар VarName = 'var_1_id' + '_ 0';

предупреждение (окно [varname]);

+0

Для вашей идеи работать должно быть что-то вроде: 'window.var_1_id_0 = 'something' var varname = ' var_1_id '+' _ 0' ; предупреждение (окно [varname]); 'so no –

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