2015-04-26 2 views
1

Я пытаюсь загрузить свои тестовые данные в объект javascript, а затем загружать данные в свои таймеры. Мне удалось получить все это, загрузив код по отдельности каждому таймеру, но я хочу, чтобы потоковая линия передала мой код, а также улучшила мои знания.Загрузка переменной Javascript с анализируемыми данными javascript

Ниже приведен мой код для настройки моих загруженных данных и как я анализирую его в javascript-объекте.

var heating_data_load = '{ "monh1": "07", "monm1": "30", "mont1": "19", "monh2": "09", "monm2": "00", "mont2": "11", "monh3": "12", "monm3": "00", "mont3": "21", "monh4": "14", "monm4": "15", "mont4": "11", "monh5": "18", "monm5": "45", "mont5": "23", "monh6": "22", "monm6": "55", "mont6": "11"}'; 

var heating_data = JSON.parse(heating_data_load); 

Функция ниже, где моя проблема.

 function load_deg_data() { 
var switch_number = 6; 
var days_of_week = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; 

for (var i = 0; i < days_of_week.length; i++) { 
    for (var t = 1; t != switch_number + 1; t++) { 

     var temphours = days_of_week[i] + "h" + t; 
     var tempmins = days_of_week[i] + "m" +t; 
     var tempdeg = days_of_week[i]+ "t" +t; 

     var data_hour_load = heating_data.temphours; 
     var data_min_load = heating_data.tempmins; 
     var data_temp_load = heating_data.tempdeg; 

     var hour_load = '#' + days_of_week[i] + '_timer #hour_timer_' + t; 
     var min_load = '#' + days_of_week[i] + '_timer #min_timer_' + t; 
     var temp_load = '#' + days_of_week[i] + '_timer #temp_range_' + t; 

     $(hour_load).val(data_hour_load); 
     $(min_load).val(data_min_load); 
     $(temp_load).val(data_temp_load); 

    } 
} 
refresh_heat_timers(); 
}; 

Проблема линия в настоящее время является:

var data_hour_load = heating_data.temphours; 

правильный объект heating_data.monh1 до monh6, я могу понять, почему он не нравится мой код, но все мои усилия, я не могу как загрузить мои данные в цикле и установить переменные temphours и использовать их как второй идентификатор для heat_data.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне просто понять, как использовать переменную в конце моего объекта heating_data.

Надеюсь, это достаточно ясно в моем описании того, чего я пытаюсь достичь.

Заранее спасибо.

ответ

2

С temphours это не имя объекта, к которому вы хотите получить доступ, но переменная, содержащая имя, вы не можете использовать dot-notation для доступа к свойству. Вы можете получить доступ к свойству с именем переменной следующим образом:

var data_hour_load = heating_data[temphours]; 
+1

Быстрый [JSFiddle] (https://jsfiddle.net/0997h96b/), если вы хотите – enigma

+0

Спасибо большое, что это именно то, что я требовал. Через несколько часов ударившись головой о стену, я теперь вижу свет. Я попробовал heat_data. [Temphours]; все еще сохраняя период между ними, но я угадывал много разных композиций. Спасибо за ваше время и помощь. –

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