Условные операторы Javascript с диапазоном входных значений - PullRequest
0 голосов
/ 17 декабря 2018

Может кто-нибудь помочь мне со следующим кодом Javascript.Я хочу, чтобы условные операторы выполнялись, если значение "Score" находится в диапазоне 1-3, 3-5, 5-7, 7-9 и 9-10.

В настоящее время они выполняются толькоесли переменная "оценка" является целым числом, но я хочу, чтобы оценки выполнялись в диапазоне чисел. Например,

, я хочу строку "if ((оценка == 1) || (оценка== 2) || (оценка == 3)) "что-то вроде if (оценка от 1 до 3), тогда оператор будет выполнен.

Это HTML:

Input 1 <input type="number" id="num1">
    <br>
    <br>
    Input 2 <input type="number" id="num2">
    <br>
    <br>
    Input 3 <input type="number" id="num3">
    <br>
    <br>
    Input 4 <input type="number" id="num4">
    <br>
    <br>
    Input 5 <input type="number" id="num5">
    <br>
    <br>
    <button onclick="calculate()">Calculate</button>

<h1 id="answer"></h1>
<h1 id="advice"></h1>

Это JS:

            function calculate()
        {
         var field1=document.getElementById("num1").value;
         var field2=document.getElementById("num2").value;
         var field3=document.getElementById("num3").value;
         var field4=document.getElementById("num4").value;
         var field5=document.getElementById("num5").value;

         if ( (field1>10) || (field1<1)|| (field2>10) || (field2<1) || (field3>10) || (field3<1) || (field4>10) || (field4<1) || (field5>10) || (field5<1))

         {
            alert("Enter a number between 1 and 10");
            return false;
        }

         var result=parseFloat(field1)+parseFloat(field2)+parseFloat(field3)+parseFloat(field4)+parseFloat(field5);

         var score= result / 5;




            if ((score==1) || (score==2) || (score==3))

         {

            document.getElementById("advice").innerHTML="You are between 1 and 3";

            }

            if ((score==4) || (score==5))

         {

            document.getElementById("advice").innerHTML="You are between 4 and 5";

            }

            if ((score==6) || (score==7))

         {

            document.getElementById("advice").innerHTML="You are between 6 and 7";

            }

            if ((score==8) || (score==9))

         {

            document.getElementById("advice").innerHTML="You are between 8 and 9";

            }

            if ((score==10))

         {

            document.getElementById("advice").innerHTML="You are 10";

            }

         if(!isNaN(score))

            {

            document.getElementById("answer").innerHTML="Your career score is " + score;

            }


        }

Помощь будет очень признателен!

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Также я хотел бы помочь вам написать лучший код:

Это:

if ( (field1>10) || (field1<1)|| (field2>10) || (field2<1) || (field3>10) || (field3<1) || (field4>10) || (field4<1) || (field5>10) || (field5<1))
    {
        alert("Enter a number between 1 and 10");
        return false;
    }

И еще более чистый код:

const fault = [field1, field2, field3, field4, field5].find(el => {
   if (el < 1 || el > 10) { // if we find this, then fault will be the index of this element
     return true 
   }  else { return false } // else fault will be undefined
})

if (fault) {
  alert("Enter a number between 1 and 10")
  return false
} 
0 голосов
/ 17 декабря 2018
if (score >= 1 && score < 3) {
  // do something
} else if (score >= 3 && score < 5) {
  // do something
}
 ... and so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...