与if条件冲突

时间:2017-10-04 16:34:23

标签: javascript

我是javascript的新手,我有两个条件,如:

if (currentServerDateTime < sCumplimientoInicial){
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}

if(fieldStatus === "4"){
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}

问题只是第二个条件执行它为什么会发生?

2 个答案:

答案 0 :(得分:4)

  

问题只是第二个条件执行它为什么会发生?

不,它们都执行,但是你用第二个结果覆盖了第一个的结果。例如:

&#13;
&#13;
var currentServerDateTime = new Date(2017, 0, 1);
var sCumplimientoInicial = new Date(2017, 0, 2);
if (currentServerDateTime < sCumplimientoInicial){
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}
console.log("sCumplimiento after first if/else: ", sCumplimiento);

var fieldStatus = "3";

if(fieldStatus === "4"){
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}
console.log("sCumplimiento after second if/else: ", sCumplimiento);
&#13;
&#13;
&#13;

如果您认为结果只有'Si' ,如果两个条件都为真,那么您可以将这两个条件结合起来:

if (currentServerDateTime < sCumplimientoInicial && fieldStatus === "4") {
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}

当然,你可能需要以其他方式将它们结合起来;例如,如果 条件为真(&#34;或&#34;而不是&#34;和&#34;),那么它应为'Si'

if (currentServerDateTime < sCumplimientoInicial || fieldStatus === "4") {
    sCumplimiento  = 'Si'
}else{
    sCumplimiento  = 'No'
}

......无论如何,根本的答案是sCumplimiento只需要设置一次,而不是两次。

或者如果您需要两个结果,那么您需要两个变量而不是一个变量来保存它们。

答案 1 :(得分:2)

根据您在此处粘贴的代码,这两个条件会填充相同的变量:sCumplimiento

因此,第二个if块将覆盖第一个。

您的代码究竟需要做什么?