Test if a certain value exists in an array

Search for a specified value within an array and return its index (or -1 if not found).


A fast and simple helper function for testing if a certain value is contained in another array:

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

If you don't need to support IE8, it's recommended to use the array method indexOf(). It return the index of a matching value, and "-1" if the looked up value does not exist in the array.

var a = [1, 2, 'abc', true];

console.log(a.indexOf('abc'));
// >> 2

console.log(a.indexOf('y'));
// >> -1

Feedback