2013-05-07 34 views
0
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); 
} 

Comapring僅在第一個if語句,而不是通過其他日eother解析做,如果語句爲什麼不是多個其他的if語句不能創建flot圖?

+0

它繪製任何東西? – jonhopkins 2013-05-07 12:15:54

+0

是的,它是繪製第一個if語句,問題是else語句沒有被解析 – Sweetz 2013-05-07 12:17:27

+0

這就是爲什麼它們不是。只要其中一個比較的結果爲真,程序就會在比較的內部塊中執行任何操作,然後停止檢查其餘的其他ifs。如果基本上是用「如果這是真的,做一些事情,但如果第一件事是假的,第二件事是真的,那麼做別的事,等等。」如果你想檢查所有的ifs,不管哪個是真的,那麼把所有其他的都取出來,所以它只是'如果verticalbar','如果linechart','if pie'。 – jonhopkins 2013-05-07 12:20:53

回答

0

你的代碼只繪製了第一張圖,因爲這是要檢查的唯一的一個。根據圖表信息的存儲方式,您可以通過幾種不同的方式查看所有信息。但重複使用的代碼始終需要做的一件重要事情是將其放入函數中。

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); 

注意,這些代碼示例都只是猜測你的數據是如何存儲在代碼。很可能你將不得不改變它的一部分。

+0

這是我所做的,問題是第一個圖將採取if語句如果正確繪製,否則其採取默認,'ELS IF'部分沒有被代碼 解析(所有3張圖都在同一頁) – Sweetz 2013-05-07 12:45:48

+0

它最有可能實際檢查那些,但只是不評估它們爲true。從'else if'部分取出'else',如果它是在你認爲圖表應該是線條圖或pie_chart的情況下,仍然沒有做任何事情,那麼javascript評估器有一些嚴重錯誤,或者'linechart_graph'和'pie_graph'是那些'options'的實際值 – jonhopkins 2013-05-07 12:50:49

+0

linechart_graph和pie_graph是傳遞給函數的值m,如果e選項是==這些名稱,則繪製dif圖形,m不理解y第二個圖形不解析el如果?任何具體的答案? – Sweetz 2013-05-07 12:55:12

相關問題