Javascript 你能缩短一个';如果';语句,其中某个变量可以是多个对象
因为我有时候需要一个if语句,比如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 (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))