Javascript 你能缩短一个';如果';语句,其中某个变量可以是多个对象

Javascript 你能缩短一个';如果';语句,其中某个变量可以是多个对象,javascript,operators,Javascript,Operators,因为我有时候需要一个if语句,比如 if (variable == 'one' || variable == 'two' || variable == 'three') { // code } 我想知道你是否可以写得更短,比如: if (variable == ('one' || 'two' || 'three')) { // code } 你可以试试: if(variable in {one:1, two:1, three:1}) 或: 或者在ES6中(现在在最新的浏览

因为我有时候需要一个if语句,比如

if (variable == 'one' || variable == 'two' || variable == 'three') { 
    // code
}
我想知道你是否可以写得更短,比如:

if (variable == ('one' || 'two' || 'three')) {
    // code
}
你可以试试:

if(variable in {one:1, two:1, three:1})
或:

或者在ES6中(现在在最新的浏览器中本机工作):

请注意,解决方案2将随阵列的大小线性扩展,因此,如果要检查的值超过几个,这不是一个好主意。

您可以尝试:

if(variable in {one:1, two:1, three:1})
或:

或者在ES6中(现在在最新的浏览器中本机工作):


请注意,解决方案2将随阵列的大小线性扩展,因此,如果要检查的值超过几个,这不是一个好主意。

不,没有进行这种多重比较的快捷方式。如果您尝试,它将计算表达式
('one'| | |'two'| |'three')
的值,然后将其与变量进行比较

您可以将值放入数组中并查找:

if ([ 'one', 'two', 'three' ].indexOf(variable) != -1) {
    // code
}
您可以使用开关:

switch (variable) {
  case 'one':
  case 'two':
  case 'three':
    // code
}
可以在对象属性中查找值(但对象值只是允许属性存在的虚拟对象):


不,这种多重比较没有捷径。如果您尝试,它将计算表达式
('one'| | |'two'| |'three')
的值,然后将其与变量进行比较

您可以将值放入数组中并查找:

if ([ 'one', 'two', 'three' ].indexOf(variable) != -1) {
    // code
}
您可以使用开关:

switch (variable) {
  case 'one':
  case 'two':
  case 'three':
    // code
}
可以在对象属性中查找值(但对象值只是允许属性存在的虚拟对象):

或者

任何一只猫都有很多办法去剥它的皮

~
不是按位的。。。所以-1变为0,0变为-1,1变为-2,依此类推

所以…~当indexOf为0或更大时,with indexOf为“truthy”,即找到值

基本上,这是一种快捷方式,我可能不会在预期其他人阅读的代码中使用,因为超过一半的人会挠头,想知道代码做了什么:p

任何一只猫都有很多办法去剥它的皮

~
不是按位的。。。所以-1变为0,0变为-1,1变为-2,依此类推

所以…~当indexOf为0或更大时,with indexOf为“truthy”,即找到值


基本上,这是一种快捷方式,我可能不会在预期其他人阅读的代码中使用,因为超过一半的人会挠头,想知道代码做了什么:p

尝试时会发生什么?以前有人问过。。。索引是你的朋友把他们放进array@JaromandaX只有当
variable=='one'
尝试时会发生什么情况?以前有人问过。。。索引是你的朋友把他们放进array@JaromandaX只有当
variable=='one'
时,它似乎才起作用,但如果您能解释
~
强制,那就太好了。我应该在这里解释
索引吗哦,那太狡猾了。下次我想让我的同事恨我的时候,我一定会用它。我猜我在回答中用它的原因。。。问题是要缩短,所以我这样做了:P但如果你能解释一下
~
强制,那就太好了。我在解释
的索引时,是否应该解释一下哦,那太狡猾了。下次我想让我的同事恨我的时候,我一定会用它。我猜我在回答中用它的原因。。。问题是要缩短,所以我做了:p
if (~['one', 'two', 'three'].indexOf(variable))