patternjavascriptCritical
Check if an element is present in an array
Viewed 0 times
arraycheckelementpresent
Problem
The function I am using now to check this is the following:
It works. Is there a better way to do this?
function inArray(needle,haystack)
{
var count=haystack.length;
for(var i=0;i<count;i++)
{
if(haystack[i]===needle){return true;}
}
return false;
}It works. Is there a better way to do this?
Solution
ECMAScript 2016 incorporates an
As of JULY 2018, this has been implemented in almost all major browsers, if you need to support an older browser a polyfill is available.
Edit: Note that this returns false if the item in the array is an object. This is because similar objects are two different objects in JavaScript.
includes() method for arrays that specifically solves the problem, and so is now the preferred method.[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(1, 2); // false (second parameter is the index position in this array at which to begin searching)As of JULY 2018, this has been implemented in almost all major browsers, if you need to support an older browser a polyfill is available.
Edit: Note that this returns false if the item in the array is an object. This is because similar objects are two different objects in JavaScript.
Code Snippets
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(1, 2); // false (second parameter is the index position in this array at which to begin searching)Context
Stack Overflow Q#7378228, score: 1384
Revisions (0)
No revisions yet.