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

时间:2012-09-27 14:05:15

标签: javascript arrays string testing

我有一个字符串数组和一个字符串。我想针对数组值测试这个字符串并应用条件结果 - 如果数组包含字符串do“A”,否则执行“B”。

我该怎么做?

5 个答案:

答案 0 :(得分:372)

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

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

如果您需要支持旧的IE浏览器,可以使用the MDN article中的代码对此方法进行填充。

答案 1 :(得分:52)

您可以使用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

答案 2 :(得分:24)

var stringArray = ["String1", "String2", "String3"];

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

答案 3 :(得分:9)

创建此函数原型:

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

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

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

答案 4 :(得分:5)

这将为你做到:

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

我在Stack Overflow问题 JavaScript equivalent of PHP's in_array() 中找到了它。