你的代碼只繪製了第一張圖,因爲這是要檢查的唯一的一個。根據圖表信息的存儲方式,您可以通過幾種不同的方式查看所有信息。但重複使用的代碼始終需要做的一件重要事情是將其放入函數中。
function plot_the_graph(plotname, plotdata, options) {
if(options == verticlebar_graph){
plot(plotname, plotdata, verticlebar_options);
}
else if(options == linechart_graph){
plot(plotname, plotdata, linechart_options);
}
else if(options == pie_graph){
plot(plotname, plotdata, pie_chart_options);
}
else{
plot(plotname, plotdata, options);
}
}
現在,您可以將該函數用於所有圖形。如果將圖形存儲在數組中,則可以使用簡單的for循環來繪製所有圖形。它可能看起來像這樣。
for (var i = 0; i < array_of_graphs.length; i++) {
plot_the_graph(
array_of_graphs[i].plotname,
array_of_graphs[i].plotdata,
array_of_graphs[i].options
);
}
或者,如果他們都是獨立的對象:
plot_the_graph(graph1_plotname, graph1_plotdata, graph1_options);
plot_the_graph(graph2_plotname, graph2_plotdata, graph2_options);
plot_the_graph(graph3_plotname, graph3_plotdata, graph3_options);
注意,這些代碼示例都只是猜測你的數據是如何存儲在代碼。很可能你將不得不改變它的一部分。
它繪製任何東西? – jonhopkins 2013-05-07 12:15:54
是的,它是繪製第一個if語句,問題是else語句沒有被解析 – Sweetz 2013-05-07 12:17:27
這就是爲什麼它們不是。只要其中一個比較的結果爲真,程序就會在比較的內部塊中執行任何操作,然後停止檢查其餘的其他ifs。如果基本上是用「如果這是真的,做一些事情,但如果第一件事是假的,第二件事是真的,那麼做別的事,等等。」如果你想檢查所有的ifs,不管哪個是真的,那麼把所有其他的都取出來,所以它只是'如果verticalbar','如果linechart','if pie'。 – jonhopkins 2013-05-07 12:20:53