如何使用 javascript 创建长度单位的 if else 语句

我的目标是创建一个带有长度单位的真正的数学表达式。我唯一遇到麻烦的部分是 Javascript 的 if else 部分。我应该更改什么,以便长度单位的 if else 语句起作用?这是我到目前为止所做的:


var operators = ['+', '-'];

var e = ['km', 'm'];


function F1() {

  num1 = document.getElementById("num1");

  num2 = document.getElementById("num2");

  rnum1 = Math.floor((Math.random() * 10) + 1);

  rnum2 = Math.floor((Math.random() * 10) + 1);

  num1.innerHTML = rnum1;

  num2.innerHTML = rnum2;

  oper = document.getElementById("operator");

  op = operators[Math.floor(Math.random() * 2)];

  oper.innerHTML = op;

  eht = document.getElementById("e1");

  eht2 = document.getElementById("e2");

  eh = e[Math.floor(Math.random() * e.length)];

  eh2 = e[Math.floor(Math.random() * e.length)];

  eht.innerHTML = eh;

  eht2.innerHTML = eh2;

  answer = document.getElementById("answer");


  if (eh = 'km') {

    if (eh2 = 'm') {

      answer.innerHTML = eval(rnum1 * 1000 + op + rnum2);

    } else {

      if (eh = 'm') {

        if (eh2 = 'km') {

          answer.innerHTML = eval(rnum1 + op + rnum2 * 1000);

        } else {

          if (eh = 'km') {

            if (eh2 = 'km') {

              answer.innerHTML = eval(rnum1 * 1000 + op + rnum2 * 1000);

            } else {

              answer.innerHTML = eval(rnum1 + op + rnum2)

            };

          }

        }

      }

    }

  }

<p> <label id="num1"> </label> <label id="e1"> </label>

  <label id="operator"> </label>

  <label id="num2"> </label> <label id="e2"> </label> =

  <label id="answer">m </label> </p>

<button onclick="F1()"> New </button>


函数式编程
浏览 105回答 2
2回答

倚天杖

我希望我能更好地理解这个问题,但我根据 Jaromanda X 的观察更新了您的 IF-ELSE 逻辑。=仅用于赋值,不应用于检查相等性。相反,当尝试评估多个值的相等性时,您应该使用==或。下面是编译和运行的代码的更新版本,但同样,我不确定预期结果到底是什么,所以我会让您确定它现在是否按预期工作。<script>    var operators = ['+', '-'];    var e = ['km', 'm'];    function F1() {        num1 = document.getElementById("num1");        num2 = document.getElementById("num2");        rnum1 = Math.floor((Math.random() * 10) + 1);        rnum2 = Math.floor((Math.random() * 10) + 1);        num1.innerHTML = rnum1;        num2.innerHTML = rnum2;        oper = document.getElementById("operator");        op = operators[Math.floor(Math.random() * 2)];        oper.innerHTML = op;        eht = document.getElementById("e1");        eht2 = document.getElementById("e2");        eh = e[Math.floor(Math.random() * e.length)];        eh2 = e[Math.floor(Math.random() * e.length)];        eht.innerHTML = eh;        eht2.innerHTML = eh2;        answer = document.getElementById("answer");        if (eh === 'km') {            if (eh2 === 'm') {                answer.innerHTML = eval(rnum1 * 1000 + op + rnum2);            }            else {                if (eh === 'm') {                    if (eh2 === 'km') {                        answer.innerHTML = eval(rnum1 + op + rnum2 * 1000);                    }                    else {                        if (eh === 'km') {                            if (eh2 === 'km') {                                answer.innerHTML = eval(rnum1 * 1000 + op + rnum2 * 1000);                            }                            else {                                answer.innerHTML = eval(rnum1 + op + rnum2)                            };                        }                    }                }            }        }    }</script><p>    <label id="num1"> </label> <label id="e1"> </label>    <label id="operator"> </label>    <label id="num2"> </label> <label id="e2"> </label>    = <label id="answer">m </label></p><button onclick="F1()"> New </button>

MYYA

我意识到对于我试图创建的内容,我不需要添加else声明。所以我if else用下面的代码替换了所有语句,然后它就起作用了:if (eh === 'km')&nbsp;&nbsp; &nbsp; {if (eh2 === 'm')&nbsp;&nbsp; &nbsp; {answer.innerHTML = eval(rnum1 * 1000 + op + rnum2);}}if (eh === 'm')&nbsp;&nbsp; &nbsp; {if (eh2 === 'km')&nbsp;&nbsp; &nbsp; {answer.innerHTML = eval(rnum1 + op + rnum2 * 1000);}}if (eh === 'km')&nbsp;&nbsp; &nbsp; {if (eh2 === 'km')&nbsp;&nbsp; &nbsp; {answer.innerHTML = eval(rnum1 * 1000 + op + rnum2 * 1000);}}if (eh === 'm')&nbsp;&nbsp; &nbsp; {if (eh2 === 'm')&nbsp;&nbsp; &nbsp; {answer.innerHTML = eval(rnum1 + op + rnum2);}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5