我有以下代码:
var fl = myitems(); //grabs all items (an array)
var f1 = f2 = new String();
function myfunc(){
//find two items in an array and load vars
for(i=0; i<fl.length-1; i++){
if(fl[i] == "match1"){
f1 = fl[i];
}
}
for(i=0; i<fl.length-1; i++){
if(fl[i] == "match2"){
f2 = fl[i];
}
}
}
如果可能的话,我想避免额外的()。我尝试if if,但很多时候第一个匹配元素在for循环中已经超过第二个元素之后被捕获。
我确定有一个简单的方法(else if
,而else
似乎没有做到这一点。)
谁能告诉我这里的常见做法是什么?
答案 0 :(得分:1)
你可以在同一个循环中进行两个测试:
for (i = 0; i < fl.length - 1; i++) {
if (fl[i] == "match1") {
f1 = fl[i];
} else if (fl[i] == "match2") {
f2 = fl[i];
}
}
请注意,比较运算符为==
,而不是=
。
答案 1 :(得分:1)
我知道这不能解答原始问题,但看起来您正在尝试查找数组是否包含'match1'和'match2',您可以使用Array.prototype.indexOf执行此操作:
var items = myitems();
if(items.indexOf('match1') !== -1) {
// Do whatever you need to do if the array contains 'match1'
}