38

Possible Duplicates:
Test for value in Javascript Array
Best way to find an item in a JavaScript Array ?
Javascript - array.contains(obj)

I usually program in python but have recently started to learn JavaScript.

In python this is a perfectly valid if statement:

list = [1,2,3,4]
x = 3
if x in list:
    print "It's in the list!"
else:
    print "It's not in the list!"

but I have had poblems doing the same thing in Javascript.

How do you check if x is in list y in JavaScript?

Community
  • 1
  • 1
Codahk
  • 1,202
  • 3
  • 15
  • 25

3 Answers3

40

Use indexOf which was introduced in JS 1.6. You will need to use the code listed under "Compatibility" on that page to add support for browsers which don't implement that version of JS.

JavaScript does have an in operator, but it tests for keys and not values.

p.s. original answer is from 2011, now it's supported by all browsers in use. https://caniuse.com/?search=indexof

Lukas Liesis
  • 24,652
  • 10
  • 111
  • 109
Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335
20

In javascript you can use

if(list.indexOf(x) >= 0)

p.s. only ancient browsers don't support it

https://caniuse.com/?search=indexof

Lukas Liesis
  • 24,652
  • 10
  • 111
  • 109
Ash Burlaczenko
  • 24,778
  • 15
  • 68
  • 99
5

in more genric way you can do like this-

//create a custopm function which will check value is in list or not
 Array.prototype.inArray = function (value)

// Returns true if the passed value is found in the
// array. Returns false if it is not.
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

then call this function in this way-

if (myList.inArray('search term')) {
     document.write("It's in the list!")
}  
kylieCatt
  • 10,672
  • 5
  • 43
  • 51
Vivek
  • 10,978
  • 14
  • 48
  • 66