String 为什么多个else if语句不能创建flot图?

String 为什么多个else if语句不能创建flot图?,string,compare,flot,if-statement,String,Compare,Flot,If Statement,Comapring仅在第一个if语句中完成,而不是通过其他else if语句进行解析您的代码仅绘制第一个图形,因为这是您要检查的唯一图形。根据图形信息的存储方式,可以通过几种不同的方式检查所有图形。但是,对于重用的代码,一件重要的事情是将其放入函数中 if(options == verticlebar_graph ){ plot(plotname, plotdata, verticlebar_options); } else if(options == linechart_graph){ plo

Comapring仅在第一个if语句中完成,而不是通过其他else if语句进行解析

您的代码仅绘制第一个图形,因为这是您要检查的唯一图形。根据图形信息的存储方式,可以通过几种不同的方式检查所有图形。但是,对于重用的代码,一件重要的事情是将其放入函数中

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循环来绘制所有图形。它可能看起来像这样

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

}

请注意,这些代码示例只是猜测数据如何存储在代码中。很可能您将不得不更改它的一部分。

它绘制了什么吗?是的,它绘制了第一条if语句,问题是else if语句没有被解析,这就是为什么它们没有被解析。一旦其中一个比较的计算结果为true,程序就会执行该比较的内部块中的任何操作,然后停止检查其余的else if。使用else if基本上是说“如果这是真的,做点什么,但是如果第一件事是假的,第二件事是真的,那么做点别的,依此类推。”如果你想检查所有的if,不管哪一个是真的,然后去掉所有的其他的,所以它只是
if verticalbar
if linechart
if pie
。我也试过了,实际上我有3个不同的图,我会为它们传递3个不同的选项(图类型检查此选项),每个图shd解析所有语句,这是真的,特定的图应该被绘制。看起来你想让你发布的代码对这三个图中的每一个都执行,对吗?有几种方法可以做到这一点。如果图形位于数组中,则可以将If-else-If环绕在循环中。或者你可以把它放在一个函数中,你可以用你的每个图调用它。这就是我所做的,问题是第一个图如果正确打印,它将使用if语句,否则它将使用默认值,“ELS if”部分不被代码解析(所有3个图都在同一页中),它很可能实际检查那些图,但只是没有评估它们的真实性。取出
else if
部分中的
else
,如果在您认为图形应该是折线图或饼图的情况下,它仍然没有做任何事情,则javascript计算器可能存在严重错误,或
linechart\u-graph
pie\u-graph
是这些情况下
选项的实际值。linechart\u-graph和pie\u-graph是传递给函数的值,如果选项是==这些名称,则绘制dif图,m不理解y第二个图没有解析els if?有什么特别的答案吗?我只是想问他们是不是字符串哈哈。因为这确实有区别。不过我很高兴你找到了答案。祝你的申请顺利:)
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);