我正在尝试将测试数据加载到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并使用它作为heating_data的第二个标识符。
如果有人能帮助我理解如何在我的heating_data对象的末尾使用变量,我真的很感激。
我希望在我对我想要实现的目标的描述中已经足够清楚了。
提前谢谢。
答案 0 :(得分:2)
由于temphours
不是您要访问的属性的名称,而是包含名称的变量,因此您无法使用点符号来访问该属性。您可以访问具有变量名称的属性,如下所示:
var data_hour_load = heating_data[temphours];