javascript - 如何使用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>
解决方案
我希望我能更好地理解这个问题,但我根据 Jaromanda X 的观察更新了你的 IF-ELSE 逻辑。
=
仅用于赋值,不应用于检查相等性。相反,您应该在尝试评估多个值的相等性时使用==
or 。===
有关此概念的更多信息,请参阅MDN Equality comparisons and sameness。
下面是您的代码的更新版本,它可以编译并运行,但同样,我不确定预期的结果究竟是什么,所以我会让您确定它现在是否按预期工作。
<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>
推荐阅读
- python - 如何使用Python在第二次出现特定单词后提取文本文件的一部分
- python - 将约束添加到 Python MIP 模型有哪些不同的方法?
- java - 通过 Java 套接字编程共享屏幕
- mysql - Mysql考勤报告在prepare stmt上创建语法错误
- ios - Swift 4. iOS 13. UITableViewCell 内的 UIButton - 如何触摸和滚动?
- php - 使用 Chrome 的 Android 设备上的长 XHR POST 停止(HTTP 状态 408)
- javascript - 我正在尝试将这篇文章附加到照片上作为响应
- jquery - 为什么这个 jQuery 点击处理程序在 Codesandbox 中不起作用?
- express - 调度 localhost serverless cron:无法在注册表中解析模型
- javascript - Promise.all 数组 $.ajax() 调用的进度条