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

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

This question already has an answer here:

How do I check if an array includes an object in JavaScript?

46 answers

I have a string array and one string. I’d like to test this string against the array values and apply a condition the result – if the array contains the string do “A”, else do “B”.
How can I do that?

Solutions/Answers:

Solution 1:

There is an indexOf method that all arrays have (except Internet Explorer 8 and below) that will return the index of an element in the array, or -1 if it’s not in the array:

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

If you need to support old IE browsers, you can polyfill this method using the code in the MDN article.

Solution 2:

You can use the indexOfmethod and “extend” the Array class with the method contains like this:

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

with the following results:

Related:  How can I merge TypedArrays in JavaScript?

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

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

Solution 3:

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

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

Solution 4:

Create this function prototype:

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

and then you can use following code to search in array x

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

Solution 5:

This will do it for you:

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

I found it in Stack Overflow question JavaScript equivalent of PHP’s in_array().