有没有更好的方法来处理检查多个值。当我有超过3个选择时,它开始变得非常忙碌。有条件,如果对于很多值,更好的方法
if (myval=='something' || myval=='other' || myval=='third') {
}
PHP有一个叫做in_array()
函数的二手这样的:
in_array($myval, array('something', 'other', 'third'))
是否有类似的东西在JS或jQuery的?
有没有更好的方法来处理检查多个值。当我有超过3个选择时,它开始变得非常忙碌。有条件,如果对于很多值,更好的方法
if (myval=='something' || myval=='other' || myval=='third') {
}
PHP有一个叫做in_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}) {
...
或
if (({'something':1, 'other':1, 'third':1}).hasOwnProperty(myval)) {
....
(请注意,如果客户端已修改Object.prototype
的第一代码将不工作。)
好吧,它会工作,它可能会给你一个误报。还要注意,引号是多余的。最后要注意的是,虽然这对于OP的特定情况非常适用,但它只在比较字符串值时才起作用。 – Phrogz 2011-04-08 20:20:28
从截取的清洁溶液中的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');
if(values.hasOwnProperty(myval))将防止在原型链上找到属性。 – JaredMcAteer 2011-04-08 19:42:06
虽然这是一个很好的建议OP的特殊情况,它可能会指出,它只适用于查找字符串值。 – Phrogz 2011-04-08 20:22:12