Javascript使用变量值作为名称引用

时间:2015-11-22 22:29:28

标签: javascript

一直在网上搜索并尝试了一些对我没有用的修补程序,所以想知道其他人是否可以帮我解决这个问题。

基本上我已经附加了一些代码,它显示了一个接收区域的功能(区域是一个数字/只有3个区域1,2,3)。然后,我有3个数据集,名为data1,data2,data3,我想使用传递的区号引用。但我需要保留data1,data2& data3全部作为单独的数组,然后插入图表(chartjs)。

当用户按下开关时,会调用该函数,每个区域有3个按钮,可以在图形上显示该数据集,然后在关闭时将删除该区域数据集。

任何帮助都会很棒, 基兰

    var data1 = [];
    var data2 = [];
    var data3 = [];

    // Adds/removes data sets from the chart
    function redrawChart(zone){
        var dataSet = "data"+zone;
        dataSet.push(7,8,8,9,10);

        historyChart = new Chart(document.getElementById('ns-popout-graph').getContext("2d")).Line(newData);
    }

1 个答案:

答案 0 :(得分:1)

在这种情况下,你真的没有多少选择。最干净的是使用object来保存数组,然后构建动态键很容易:

var datas = {
    data1: [],
    data2: [],
    data3: []
};

// Adds/removes data sets from the chart
function redrawChart(zone) {

    var dataSet = datas["data" + zone];
    dataSet.push(7,8,8,9,10);

    // ...
}

另一种方法可能是eval,但这不是解决此问题的推荐方法。请注意,如果数据变量在全局命名空间(window)中定义,您仍然可以使用window['data' + zone],但我希望您不会污染全局范围,对吗? :)

相关问题