Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试JS变量是否等于两个值中的任何一个?_Javascript_Variables_Testing - Fatal编程技术网

Javascript 如何测试JS变量是否等于两个值中的任何一个?

Javascript 如何测试JS变量是否等于两个值中的任何一个?,javascript,variables,testing,Javascript,Variables,Testing,在普通的JS5中,有没有一种简单的方法来测试一个变量是否等于两个字符串 我的代码如下: var type = 'display' if (type === 'display' || type === 'filter') { ... } 有没有办法缩短,比如: if ( type === ('display' || 'filter') ) { ... } 我认为你最初的帖子非常直截了当,而且认为这是对你问题的完美回答 已经说过,您可以使用RegEx,比如前面提到的@le_m。我刚刚在控制台中测

在普通的JS5中,有没有一种简单的方法来测试一个变量是否等于两个字符串

我的代码如下:

var type = 'display'
if (type === 'display' || type === 'filter') { ... }
有没有办法缩短,比如:

if ( type === ('display' || 'filter') ) { ... }

我认为你最初的帖子非常直截了当,而且认为这是对你问题的完美回答

已经说过,您可以使用RegEx,比如前面提到的@le_m。我刚刚在控制台中测试了这个功能,效果很好

“/”告诉解释器我们将启动一个正则表达式。括号允许我们声明一个子表达式。将独立于其他表达式进行计算的子表达式

“i”代表麻木不仁。在这种情况下,这不是完全必要的,但我认为它可能会对你有用。“i”将允许您避免套管问题。此外,如果您在一个句子中传入包含“display”或“type”的较长字符串,这个正则表达式也会找到这些字符串

var type = 'display';
if (/(type|display)/i.test(type)) { 
  console.log('word found')
}

你的意思是,有没有办法测试一个变量是否等于两个字符串中的一个,是的,你已经在做了,第一个例子是正确的。即使你可以像第二个例子那样做,你真正节省了多少钱?此外,您还牺牲了可读性。没有必要缩短它,但您可以通过编译正则表达式执行
if(['display','filter'])
或者执行
if(['display','filter')。如果与需要包含^and$的大量字符串相比,测试(type)
-可能性能更好,否则,像“linotype”和“displated”这样的词也会匹配。