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

时间:2011-04-08 19:33:57

标签: javascript jquery

是否有更好的方法来处理检查多个值。当我有超过3个选择时,它开始变得非常忙碌。

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

}

PHP有一个名为in_array()的函数,使用如下:

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

在js或jquery中有类似的东西吗?

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:3)

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

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

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

(请注意,如果客户端修改了Object.prototype,则第一个代码将无效。)

答案 2 :(得分:2)

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

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

if(values[myVal]) {

}

没有jQuery也可以工作;)

答案 3 :(得分:0)

10+ JAVASCRIPT SHORTHAND CODING TECHNIQUES获取的干净解决方案:

<强>普通写法

if (myval === 'something' || myval === 'other' || myval === 'third') {
    alert('hey-O');
}

<强>速记

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