Member 13289364 Ответов: 2

If..else ошибка условия


Я пытаюсь понять, что не так с этим следующим кодом. Код ищет значение в таблице и назначает mxCost. Условие IF..ELSE работает для всех значений, кроме 1, и также считывает таблицу. Условие IF приводит к сбою страницы, и я не могу понять, почему? Может ли кто-нибудь помочь мне понять, что я здесь делаю не так? Любая помощь будет оценена по достоинству. Спасибо.

Что я уже пробовал:

$jq("#airTableValues tbody tr").each(function() {
         var monthName  = months[parseInt(dateSplit[1])-1]+" "+dateSplit[0];
         if(monthName==$jq(this).find("td:eq(0)").text().trim())
          {
              mxCost = $jq(this).find("td:eq(6)").text().trim();
          }
      });
 
    if (mxCost)
      mxCost = (mxCost.substring(1, mxCost.length));
    else {
      mxCost = 0;
    }


  
    var MxStat = document.getElementById("MxStat").value;
    MxStat = MxStat/100;
    var InflationRate1 = document.getElementById("InflationRate1").value;
    InflationRate1 = InflationRate1/100;

    var rate3 = document.getElementById("rate3").value;
    rate3 =   Math.pow(1+rate3/100,1/365)-1;
    var mxAdj;
    if (MxStat == 1){
       mxAdj = mxCost;
    } //NOT WORKING!
    else (MxStat != 1) {
      var TotalCost = mxCost * 2; 
       mxAdj = (TotalCost * MxStat) - mxCost; 
    }


    var ReturnVal = (mxAdj * InflationRate1) + mxAdj;
    var ReturnCalc = ReturnVal * 1000000;
    var ReturnPV = Math.floor(ReturnCalc/Math.pow(1+rate3,periods));
    document.getElementById("ReturnCondition").value = 
    (ReturnPV/1000000).toFixed(2);
    ReturnCondition = ReturnVal.toFixed(2);

2 Ответов

Рейтинг:
2

User 7429338

Если вы хотите указать условие, вам нужно использовать else if:

if (MxStat == 1){
   mxAdj = mxCost;
}
else if (MxStat != 1) {
   var TotalCost = mxCost * 2;
   mxAdj = (TotalCost * MxStat) - mxCost;
}


или просто:
if (MxStat == 1){
   mxAdj = mxCost;
}
else {
   var TotalCost = mxCost * 2;
   mxAdj = (TotalCost * MxStat) - mxCost;
}


Member 13289364

Да. Я действительно пропустил это, когда печатал. Но я попробовал, и у меня ничего не вышло.

Рейтинг:
12

Member 13289364

Это сработало для меня.

if (MxStat != 1){
       var mxAdj = (TotalCost * MxStat) - mxCost;
       var ReturnVal = (mxAdj * InflationRate1) + mxAdj;
       aReturnCondition = ReturnVal.toFixed(2);
   }
   if (MxStat == 1){
       var mxAdj =  mxCost*InflationRate1;
       var ReturnVal = parseFloat(mxAdj + mxCost);
       aReturnCondition = parseFloat(ReturnVal).toFixed(2);
   }