How to Check If an Array Includes an Object in JavaScript
Topic: JavaScript / jQueryPrev|Next
Answer: Use the JavaScript some()
Method
You can use the JavaScript some()
method to find out if a JavaScript array contains an object.
This method tests whether at least one element in the array passes the test implemented by the provided function. Here's an example that demonstrates how it works:
Example
Try this code »<script>
// An array of objects
var persons = [{name: "Harry"}, {name: "Alice"}, {name: "Peter"}];
// Find if the array contains an object by comparing the property value
if(persons.some(person => person.name === "Peter")){
alert("Object found inside the array.");
} else{
alert("Object not found.");
}
</script>
Note that if try to find the object inside an array using the indexOf()
method like persons.indexOf({name: "Harry"})
it will not work (always return -1
). Because, two distinct objects are not equal even if they look the same (i.e. have the same properties and values). Likewise, two distinct arrays are not equal even if they have the same values in the same order.
The some()
method is supported in all major browsers, such as Chrome, Firefox, IE (9 and above), etc. See the tutorial on JavaScript ES6 Features to learn more about arrow function notation.
Related FAQ
Here are some more FAQ related to this topic: