我有一个示例代码:
var find = ['iphone 3', 'iphone 4', 'iphone 5'];
var search = 'iphone 5';
for(i=0; i<find.length; i++) {
if(search == find[i]) {
alert('Yes');
} else {
alert('No');
}
}
当我运行代码时,结果2提醒(alert('Yes') and alert('No')
),但结果只是alert('Yes'),
如何修复它?
答案 0 :(得分:1)
只需使用.indexOf
:
if ( find.indexOf( search ) > -1 ) {
alert('Yes');
} else {
alert('No');
}
将此替换为的全部代码,不包括变量声明。
答案 1 :(得分:1)
如果我理解你的问题,你不希望在找不到匹配项时提醒no
:
var find = ['iphone 3', 'iphone 4', 'iphone 5'];
var search = 'iphone 5';
for(i=0; i<find.length; i++)
{
if(search == find[i])
{
alert('Yes');
break;//stop loop, found match
}
}
只是不提供else
分支。哦,如果你不关心旧的浏览器:
if (find.indexOf(search) !== -1)
{
alert('yes');
}
答案 2 :(得分:0)
如果您想提醒发现的匹配,请使用标记来标记匹配的位置或否。最后,使用该标志提醒相应的消息,如下所示:
var find = ['iphone 3', 'iphone 4', 'iphone 5'];
var search = 'iphone 5';
var present = false;
for(i=0; i<find.length; i++) {
if(search == find[i]) {
present = true;
break;
}
}
if(present) {
alert('Yes');
} else {
alert('No');
}
请注意:可能有更好的方法,但只能按照您的算法尝试帮助。