我怎样才能比较一个字符串与几个值?
可能重复:
array.contains(obj)在JavaScript中
就像是:
if (mystring == "a" || mystring == "b" || mystring =="c")
我正在跳跃做:
if (mystring in ("a", "b", "c"))
可能吗?
你可以像这样使用indexOf()
if ( [ 'a', 'b', 'c' ].indexOf( mystring ) > -1 ) { ... }
编辑与ES7来了一点简化。 截至今天,Chrome 47+和FF 43+似乎都支持它:
if ( [ 'a', 'b', 'c' ].includes( mystring ) ) { ... }
Array.prototype.includes()
MDN 使用indexOf是首先想到的,但是你必须记住, 在较老的IE中没有.indexOf
函数 (所以你必须使用自定义代码来模拟它,或者直接使用jQuery。 inArray或underscore.js indexOf)。
if ([ 'a', 'b', 'c' ].indexOf( mystring ) > -1 ) { ... }
附注:正如您通过查看jQuery源代码中的inArray定义所看到的,编写自己的indexOf替换项非常简单。 就像我说的那样 - 编写自己的方法,从其他库中复制粘贴,或者如果您希望能够在每个浏览器中使用indexOf,就使用这些库。
你可以用旧的方式来做
a = "a";
b = ["a","b","c","d"];
function check(a,b){
i = 0;
for (i=0;i<b.length;i++) {
if (a === b[i]) {
return true;
}
}
return false;
}
alert(check (a,b))
请注意indexOf是ECMA-262标准的新增内容; 因此它可能不会出现在所有的浏览器中如果你打算在IE中使用它,它只能用于版本9或更高版本
链接地址: http://www.djcxy.com/p/13047.html