如何在javascript中检查字符串数组是否包含一个字符串?

How to check if a string array contains one string in JavaScript?

本问题已经有最佳答案,请猛点这里访问。

我有一个字符串数组和一个字符串。我想根据数组值测试这个字符串,并应用一个条件——如果数组包含字符串do"a",则执行"b"。

我该怎么做?


所有数组都有一个indexOf方法(Internet Explorer 8及以下版本除外),该方法将返回数组中某个元素的索引,如果该元素不在数组中,则返回-1:

1
2
3
4
5
if (yourArray.indexOf("someString") > -1) {
    //In the array!
} else {
    //Not in the array
}

如果需要支持旧的IE浏览器,可以使用MDN文章中的代码多填充此方法。


您可以使用indexOf方法,并使用方法contains像这样"扩展"数组类:

1
2
3
Array.prototype.contains = function(element){
    return this.indexOf(element) > -1;
};

结果如下:

["A","B","C"].contains("A")等于true

["A","B","C"].contains("D")等于false


1
2
3
var stringArray = ["String1","String2","String3"];

return (stringArray.indexOf(searchStr) > -1)

创建此函数原型:

1
2
3
4
5
6
Array.prototype.contains = function ( needle ) {
   for (i in this) {
      if (this[i] == needle) return true;
   }
   return false;
}

然后可以使用以下代码在数组x中搜索

1
2
3
4
5
6
7
if (x.contains('searchedString')) {
    // do a
}
else
{
      // do b
}


这将为您做到:

1
2
3
4
5
6
7
8
function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle)
            return true;
    }
    return false;
}

我在堆栈溢出问题javascript中找到了它,它相当于_Array()中的php。