javascript - 语句中的 Javascript 多个 OR
问题描述
我有一个非常基本的声明,它没有输出正确的值,但我不明白为什么。
我的变量具有以下值:
var bedroomNums = "0_1"
然而,此输出显示为true
在 Chrome 控制台中:
bedroomNums != ("0_0" || "0_1" || "0_2")
我正在尝试创建一个IF
声明来表示:
if bedroomNums doesnt equal X or Y or Z then the statement is true
我努力了:
bedroomNums != "0_0" || bedroomNums != "0_1" || bedroomNums != "0_2"
但这也显示为真
我哪里错了
解决方案
您实际上正在寻找的是一个合乎逻辑AND
的 ,它将确保满足每个条件:
if (bedroomNums != "0_0" && bedroomNums != "0_1" && bedroomNums != "0_2") {
// `bedroomNums` is not one of "0_0", "0_1", "0_2"
}
如果其中一项检查返回FALSE
(即bedroomNums
设置为这些值之一),则不会执行大括号内的代码。
表达相同条件的另一种方法是将您要比较的每个值枚举到一个 Array 结构中,然后使用以下命令检查以确保bedroomNums
Array 中不存在该值Array.prototype.includes()
:
if (!["0_0", "0_1", "0_2"].includes(bedroomNums)) {
// `bedroomNums` is not one of "0_0", "0_1", "0_2"
}
这种风格通常在您的程序必须动态枚举条件的所有可能值的情况下(基于一些其他逻辑或数据源)更有帮助。
推荐阅读
- c - C 中的预期表达式
- javascript - MYSQL - PHP - 使用从提交按钮传递的变量更新数据库中的值
- javascript - 从 dataTable 行访问嵌套的对象数组
- date - 如果 golang 中的条件出错
- xaml - 图像未显示在 MVVM XAML Xamarin 表单上
- python - 通过python加载xgen预览
- python - Plotly Scatter3d:如何强制 3D 轴具有相同的比例/纵横比?
- facebook - 使用 v3.1 Graph API Explorer 访问 facebook 信息
- javascript - 基于父属性值的jQuery悬停效果
- php - 如何在没有http的情况下找到所有带有可能连字符的jpg?