如何检查一个string数组是否包含JavaScript中的一个string?

我有一个string数组和一个string。 我想testing这个string对数组值,并应用条件的结果 – 如果数组包含string做“A”,否则做“B”。

我怎样才能做到这一点?

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

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

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

您可以使用indexOf方法并使用contains如下方法的“扩展”Array类:

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

结果如下:

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

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

 var stringArray = ["String1", "String2", "String3"]; return (stringArray.indexOf(searchStr) > -1) 

创build这个函数原型:

 Array.prototype.contains = function ( needle ) { for (i in this) { if (this[i] == needle) return true; } return false; } 

然后你可以使用下面的代码在数组x中search

 if (x.contains('searchedString')) { // do a } else { // do b } 

这将为你做到这一点:

 function inArray(needle, haystack) { var length = haystack.length; for(var i = 0; i < length; i++) { if(haystack[i] == needle) return true; } return false; } 

我发现它在PHP的in_array()相当于堆栈溢出问题的JavaScript