一直在网上搜索并尝试了一些对我没有用的修补程序,所以想知道其他人是否可以帮我解决这个问题。
基本上我已经附加了一些代码,它显示了一个接收区域的功能(区域是一个数字/只有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);
}
答案 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]
,但我希望您不会污染全局范围,对吗? :)