Last updated: Feb 27, 2024
Reading timeยท3 min

To find an object in an array:
Array.find() method to iterate over the array.find method will return the first matching object.const arr = [ { id: 1, country: 'Mexico' }, { id: 2, country: 'Germany' }, { id: 3, country: 'Mexico' }, ]; const found = arr.find((obj) => { return obj.id === 1; }); // ๐๏ธ {id: 1, country: 'Mexico'} console.log(found);

The function we passed to the Array.find method gets called with each element (object) in the array until it returns a truthy value or iterates over the entire array.
On each iteration, we check if the id property of the object is equal to 1.
find() method returns the corresponding object and short-circuits.This is very convenient when you only need to get the first object that matches the specific condition.
find() method short-circuits and returns the object.If the callback function we passed to the find() method never returns a
truthy value, the find() method returns undefined.
const arr = [ { id: 1, country: 'Mexico' }, { id: 2, country: 'Germany' }, { id: 3, country: 'Mexico' }, ]; // ๐๏ธ const found: {id: number; country: string; } | undefined const found = arr.find((obj) => { return obj.id === 1; });
Notice that the type of the found variable is either an object or undefined.
You can use a type guard to narrow down the type to be able to access properties on the object.
const arr = [ { id: 1, country: 'Mexico' }, { id: 2, country: 'Germany' }, { id: 3, country: 'Mexico' }, ]; // ๐๏ธ const found: {id: number; country: string; } | undefined const found = arr.find((obj) => { return obj.id === 1; }); if (found) { // โ TypeScript now knows that found is an object // and not undefined console.log(found.country); // ๐๏ธ Mexico }
TypeScript can safely infer the type of the found variable to be an object in
the if block.
To find all objects in an array that match a condition:
filter() method to iterate over the array.filter method will return a new array containing the objects that match
the condition.const arr = [ { id: 1, country: 'Mexico' }, { id: 2, country: 'Germany' }, { id: 3, country: 'Mexico' }, ]; const filtered = arr.filter((obj) => { return obj.country === 'Mexico'; }); // ๐๏ธ [{id: 1, country: 'Mexico'}, {id: 3, country: 'Mexico'}] console.log(filtered);

The function we passed to the Array.filter method gets called with each element (object) in the array.
The filter() method returns a new array that only contains the elements that
meet the condition.
Note that the filter() method will iterate over the entire array, regardless
of how many times the condition is met.
This way, we are able to get multiple objects that meet a specific condition from an array of objects.
If the callback function we passed to the filter method never returns a truthy
value, the filter method returns an empty array.