为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2023-10-24 17:36:54
我的目标是创建一个带有长度单位的真正的数学表达式。我唯一遇到麻烦的部分是 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>
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

我希望我能更好地理解这个问题,但我根据 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>


查看完整回答
反对 回复 2023-10-24
?
MYYA

TA贡献1868条经验 获得超4个赞

我意识到对于我试图创建的内容,我不需要添加else声明。所以我if else用下面的代码替换了所有语句,然后它就起作用了:


if (eh === 'km') 

    {if (eh2 === 'm') 

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


if (eh === 'm') 

    {if (eh2 === 'km') 

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


if (eh === 'km') 

    {if (eh2 === 'km') 

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


if (eh === 'm') 

    {if (eh2 === 'm') 

    {answer.innerHTML = eval(rnum1 + op + rnum2);}}


查看完整回答
反对 回复 2023-10-24
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信