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:

  • <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:

Your Feedback:

We would love to hear from you, please drop us a line.