Javascript 有条件的如果有很多值,更好的方法

Javascript 有条件的如果有很多值,更好的方法,javascript,jquery,Javascript,Jquery,是否有更好的方法来处理检查多个值。当我有三个以上的选择时,它开始变得非常繁忙 if (myval=='something' || myval=='other' || myval=='third') { } PHP在_array()中有一个名为的函数,它的用法如下: in_array($myval, array('something', 'other', 'third')) js或jquery中是否有类似的内容?您可以通过使用某种哈希映射来避免在数组上迭代: var values = {

是否有更好的方法来处理检查多个值。当我有三个以上的选择时,它开始变得非常繁忙

if (myval=='something' || myval=='other' || myval=='third') {

}
PHP在_array()中有一个名为
的函数
,它的用法如下:

in_array($myval, array('something', 'other', 'third')) 

js或jquery中是否有类似的内容?

您可以通过使用某种哈希映射来避免在数组上迭代:

var values = {
    'something': true,
    'other': true,
    'third': true
};

if(values[myVal]) {

}

不使用jQuery也可以工作;)

除了
$.inArray
,您还可以使用对象表示法:

if (myval in {'something':1, 'other':1, 'third':1}) {
   ...


(请注意,如果客户端修改了
Object.prototype
),则第1个代码将不起作用)

从以下位置获取干净的解决方案:

正手

if (myval === 'something' || myval === 'other' || myval === 'third') {
    alert('hey-O');
}
if(['something', 'other', 'third'].indexOf(myvar) !== -1) alert('hey-O');
速记

if (myval === 'something' || myval === 'other' || myval === 'third') {
    alert('hey-O');
}
if(['something', 'other', 'third'].indexOf(myvar) !== -1) alert('hey-O');

如果(values.hasOwnProperty(myval))可以防止在原型链上查找属性。虽然这是针对OP的特殊情况的一个很好的建议,但可能需要指出的是,它只在查找字符串值时有效。好吧,它会起作用,它可能会给您一个误判。还要注意,引号是多余的。最后请注意,虽然这对于OP的特定情况非常有效,但它仅在比较字符串值时有效。