javascript if(variable==(variable2 | | variable3 | |……)
可能重复:javascript if(variable==(variable2 | | variable3 | |……),javascript,loops,Javascript,Loops,可能重复: 有没有办法做到这一点: if( variable1 == (variable2 || variable3 || ...) ) 我需要检查variable1是否等于variable2variable345 我不能直接这样做: if( (variable1 == variable2) || (variable1 == variable3) || ...) ) 因为我不知道到底有多少变量2 3 4 5。。。我有 顺便说一句,变量2 3 4 5。。。是数组的元素。我试过了,但什么都
有没有办法做到这一点:
if( variable1 == (variable2 || variable3 || ...) )
我需要检查variable1是否等于variable2variable345
我不能直接这样做:
if( (variable1 == variable2) || (variable1 == variable3) || ...) )
因为我不知道到底有多少变量2 3 4 5。。。我有
顺便说一句,变量2 3 4 5。。。是数组的元素。我试过了,但什么都没发生
if( variable1 == (variable2 || variable3 || ...) )
更新:
下面是片段
假设strskill等于:
abc|def|ghi|jkl|
var myskl=document.getElementById('strskill').value.split(“|”);
对于(var q=0;q-1)
{
继续;
}
我试过你的建议,但还是不起作用 您不能这样做,因为
A | | B | | C | |…
总是返回第一个真值
你可以像下面这样做:
if ([variable2, variable3, variable4, ...].indexOf(variable1) > -1) {
}
这与您正在做的工作不一样,请检查变量2到n中的任何一个是否被视为布尔值True,然后将其与变量1的值进行比较 如果变量2到n在一个数组中,您应该创建一个函数is_成员,获取数组和变量1并发回布尔值 这可以通过一个数组来完成,如果eather值与varaible1匹配,则返回true
在其他情况下,您应该在for boucle之后返回false,因为您有不同的选项
- 在纯javascript中,可以使用
,如果在数组中找不到它,它将返回-1。更多信息。小心那些不支持此功能的旧浏览器array.indexOf(variable1)
- 许多不同的javascript框架都提供了这种可能性:请使用许多不同的引用来检查这个答案
不能直接执行此逻辑操作。您必须使用@xdazz显示的
indexOf
,或者使用如下所示的循环
function inArray(array, val){
for(var i = 0; i < array.length; i++){
if(array[i] == val){
return true;
}
}
return false;
}
var arr = [3, 4, 5, 6, 7, 8, 9];
var var1 = 90;
inArray(arr, var1);
函数数组(数组,val){
对于(var i=0;i
您也可以这样做
a=1;
b=[1,2,3,4];
功能检查(a、b){
i=0;
对于(i=0;i您必须使用for
/循环检查此项。如果您希望保持If
语句的完整性,可以使用匿名函数:
var myArr=[false,true,true,false]
if((function(arr,compareTo){
for( var i=0;i<arr.length;i++){
if(arr[i]==compareTo) return true;
}
return false;
})(myArr,true)){
// ⇑⇑⇑⇑ ⇖The variable you want to check against
//The array with the values you want to check
document.write('Yes!')
}else{
document.write('No :-(');
}
if((函数(arr,compareTo){
对于(var i=0;i假设您希望从更新中查找列表其余部分中是否找到第一个条目:
var myskl = document.getElementById('strskill').value.split("|");
var s = myskl.shift();
var found = (myskl.indexOf(s) >= 0);
如果要找到的字符串s
s来自其他地方,请删除.shift()
行
请注意,indexOf()
是最近添加到JS中的-使用“垫片”如果不存在,则将其添加到浏览器中的函数-有关更多信息,请参阅。@IvorySantos如果要将其与IE一起使用,则仅适用于版本9或更高版本above@xdazz我试过你的例子,请看我更新的问题。它仍然没有working@Andreas我试过indexOf,现在正在使用firefox,但仍然没有working@IvorySantos你的代码是s严重损坏-您需要myskl[q]
的值,但您只是创建了一个字符串,上面写着“myskl[q]”
@IvorySantos请检查这个简单的演示。那么您想知道abc
是否在def | ghi |
中找到吗?我有一个“相同”的问题@Alnitak NO。我想知道我的数组[I]等于'abc'或'def'或ghiI最近已经猜到并尝试过了。但是我遇到了一个问题,我如何才能“继续”;到下一个迭代,因为我需要避开两个循环。直到我看到你的答案,让我再想想。砰的一声,我找到了一个解决方案。谢谢@Kidmenot高兴能帮助@IvorySantos
a = 1;
b = [1,2,3,4];
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))
if((function(arr,compareTo){
for( var i=0;i<arr.length;i++){
if(arr[i]==compareTo) return true;
}
return false;
})(myArr,true)){
// ⇑⇑⇑⇑ ⇖The variable you want to check against
//The array with the values you want to check
document.write('Yes!')
}else{
document.write('No :-(');
}
var myskl = document.getElementById('strskill').value.split("|");
var s = myskl.shift();
var found = (myskl.indexOf(s) >= 0);