我是javascript的新手,我有两个条件,如:
if (currentServerDateTime < sCumplimientoInicial){
sCumplimiento = 'Si'
}else{
sCumplimiento = 'No'
}
if(fieldStatus === "4"){
sCumplimiento = 'Si'
}else{
sCumplimiento = 'No'
}
问题只是第二个条件执行它为什么会发生?
答案 0 :(得分:4)
问题只是第二个条件执行它为什么会发生?
不,它们都执行,但是你用第二个结果覆盖了第一个的结果。例如:
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;
如果您认为结果只有'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
块将覆盖第一个。
您的代码究竟需要做什么?