javascript - javascript if语句多个运算符失败
问题描述
我有一个评估的 if 语句
if(expression || expression &&
expression || expression){
//logic
}
由于我无法理解的原因,and 运算符之后的 else 语句没有得到评估。if 语句有一些我不知道的规则吗?
这是我的代码:
const fillTable = function (array) {
let tbody = document.querySelector("#tblbody");
while (tbody.firstChild) {
tbody.removeChild(tbody.firstChild);
}
array.forEach(element => {
let region = regionOption.options[regionOption.selectedIndex].value;
let gender = genderOption.options[regionOption.selectedIndex].value;
elementGender = Object.values(element)[2];
elementRegion = Object.values(element)[3];
console.log(elementRegion + "+" + region);
console.log(elementGender + "+" + gender);
if (elementRegion === region || region === "All" &&
elementGender === gender || gender === "bot") {
let tr = document.createElement("tr");
tbody.appendChild(tr);
const values = Object.values(element);
values.forEach(element => {
let td = document.createElement("td");
td.appendChild(document.createTextNode(element));
tr.appendChild(td);
})
}
})
};
即使 if 语句中的性别不匹配,循环也会继续。
解决方案
看起来if
条件中的 2 行都应该在它们自己的分组运算符中:
if (
(expression1 || expression2)
&& (expression3 || expression4)
) {
// ...
}
推荐阅读
- java - 从 Java 瘦客户端获取 Apache Ignite 缓存中的所有密钥
- gremlin - Gremlin 是否支持命名空间?
- python - 如何使用 .txt 文件中的二进制输入绘制 PCM 波
- python - 为什么在推送到 Github 时会创建一个新的子目录
- python-3.x - 如果 HTML 标签位于 ::Before using bs4 下,如何提取文本
- java - 如何以编程方式检测android studio中的系统背景触摸
- scala - 如何使用 Scala 内核为 Jupyter notebook 安装 sbt 包?
- php - 如何在 Laravel 宏闭包中记录 $this?
- reactjs - 带有自定义 Thumb 组件的移动设备上 Material-ui 滑块的奇怪行为
- r - 为什么这些操作不会产生相同的结果?管道进入。(点)