操作员不工作!=
Operator not working !=
我的代码有这个
if (choice != 'A1' || 'A2' || 'A3' || 'B1' || 'B2' || 'B3' || 'C1' || 'C2' || 'C3'){//dosomethingrecursive}
每当我选择说"A1"时,就好像这是选择而不是选择。据我所知,哪一个是错误的,还是我错过了什么?
你不能那样写。如果你不想(正确地)连锁测试
if (choice != 'A1' && choice != 'A2' && ...
如果想要更短的值,可以将值放入数组中,并测试choice
是否不是数组的元素:
[ 'A1', 'A2', ... ].indexOf( choice ) < 0
在JavaScript和我所知道的所有编程语言中,布尔逻辑运算符不会以这种方式组合,它们遵循固定的bool OPERATOR bool
模式。
这意味着您的带括号的||
系列首先被增量转换为一个值,然后将该值与您的choice
进行比较。
实现所需逻辑的最简单方法是利用Array#every对每个值重复逻辑操作,直到操作失败:
['A1', 'A2', 'A3', 'A4'].every(function(x) { x != choice })
翻译过来就是:'choice' must be different from every value in 'array'
。
一般来说,每当你需要重复某件事时,想想如何使用数组及其迭代器方法,这通常是最优雅的方法。
你不能把一个英语句子翻译成这样的代码——代码的含义更精确,在这种情况下是不同的。
您的代码计算
'A1' || 'A2' || 'A3' || 'B1' || 'B2' || 'B3' || 'C1' || 'C2' || 'C3'
然后将结果与CCD_ 6进行比较。这不是你想要的。
您必须单独进行比较,例如
if (choice != 'A1') && (choice != 'A2') && ...
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- $in操作员钛 SDK 无法 #appcelerator 工作
- 操作员不工作!=
- &操作员未在指令的隔离范围内工作
- Javascript>操作员未在Extension中工作
- Javascript:"!="操作员不'工作不正常
- 不等于<>操作员不工作
- 操作员”>"不会'工作不正常
- 这“如果”是怎么回事?无需操作员工作
- 为什么不't|"操作员为大值工作