使用已解析的javascript数据加载Javascript变量

时间:2015-04-26 15:55:50

标签: javascript arrays json jquery-mobile

我正在尝试将测试数据加载到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对象的末尾使用变量,我真的很感激。

我希望在我对我想要实现的目标的描述中已经足够清楚了。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

由于temphours不是您要访问的属性的名称,而是包含名称的变量,因此您无法使用点符号来访问该属性。您可以访问具有变量名称的属性,如下所示:

var data_hour_load = heating_data[temphours];