在没有硬编码的情况下创建if语句

时间:2017-08-27 23:14:08

标签: javascript arrays if-statement

我有一个我想检查的数组,例如:

 var str = ["a","b","c","d","e","f"];

但是我想检查这个数组的字符串值是在数据库中还是在某种数据库中。 我想知道哪一个匹配并将找到的匹配项存储在数组中。

 var dataFound = [];
 var count = 0;
 for(var stringData in someDatabase){
    if(stringData == str[0] || stringData == str[1] ...etc){
         dataFound[count] = stringData;
         count++;
    }
 }

 //someDatabase will consist of strings like random alphabets 
 from a-z

我不想对if语句进行硬编码,因为查询数组可以是a,b,c ...(n)中的任何位置,因为n可以表示任意数量的字符串。我尝试使用从0到 str.length 的for循环,但是当我可以使用运算符一次性搜索所有字符串时,可能需要一段时间价值观,有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:2)

if (str.indexOf(stringData) > -1) {
    //found
}
  

Array.prototype.indexOf()(MDN)

答案 1 :(得分:0)

如果str是一个数组,你可以这样做吗?

var dataFound = [];
var count = 0;
for(var stringData in someDatabase){
 for (i++; i < str.length; i++) {
  if(stringData == str[i]){
     dataFound[count] = stringData;
     count++;
  }
 }

}