今天下午,我的大脑一片空白,我无论如何也想不出正确的方法:
if(i!="3" && i!="4" && i!="5" && i!="6" && i!="7" && i!="8" && i!="9" && i!="2" && i!="19" && i!="18" && i!="60" && i!="61" && i!="50" && i!="49" && i!="79" && i!="78" && i!="81" && i!="82" && i!="80" && i!="70" && i!="90" && i!="91" && i!="92" && i!="93" && i!="94"){
//do stuff
}
所有这些数字都需要在一个数组中,然后我可以检查"i
“是否不等于它们中的任何一个。
发布于 2010-08-06 23:33:19
var a = [3,4,5,6,7,8,9];
if ( a.indexOf( 2 ) == -1 ) {
// do stuff
}
如果找不到该数字,则indexOf
返回-1
。如果找到它,它将返回-1
以外的内容。如果您愿意,可以更改您的逻辑。
如果需要字符串( a = ['1','2']
),请用引号将数字括起来。我不知道你在处理什么所以我给他们做了编号。
IE和其他晦涩/老旧的浏览器将需要indexOf
方法:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
发布于 2010-08-06 23:38:44
我的头脑做出了这样的解决方案:
function not(dat, arr) { //"not" function
for(var i=0;i<arr.length;i++) {
if(arr[i] == dat){return false;}
}
return true;
}
var check = [2,3,4,5,6,7,8,9,18,19,49,50,60,61,70,78,79,80,81,82,90,91,92,93,94]; //numbers
if(not(i, check)) {
//do stuff
}
发布于 2010-08-06 23:36:32
此解决方案是跨浏览器的:
var valid = true;
var cantbe = [3, 4, 5]; // Fill in all your values
for (var j in cantbe)
if (typeof cantbe[j] === "number" && i == cantbe[j]){
valid = false;
break;
}
如果valid
不是“坏”值,则i
将为true
,否则为false
。
https://stackoverflow.com/questions/3425291
复制相似问题