JAVASCRIPT

JavaScript Array() Find: Syntax, Usage, and Examples

The find() method is a powerful and commonly used feature of the JavaScript Array object. It allows you to retrieve the first element in an array that satisfies a provided testing function. Whether you're working with primitive values or complex objects, the JavaScript array find method offers a clean, readable solution for locating items.


What Is the JavaScript array find Method?

The find() method in JavaScript is used to search through an array and return the first element that satisfies the condition implemented by the provided callback function. If no element matches the condition, the method returns undefined.

This method is a part of the ECMAScript 2015 (ES6) standard and is supported in all modern browsers.


Syntax

array.find(callback(element, index, array), thisArg);

Parameters

  • callback: A function to test each element of the array.
  • element: The current element being processed.
  • index (optional): The index of the current element.
  • array (optional): The array find() was called upon.
  • thisArg (optional): Value to use as this when executing the callback.

Return Value

The method returns the value of the first element that satisfies the provided testing function. If no elements match, it returns undefined.


Basic Example

const numbers = [5, 12, 8, 130, 44];

const found = numbers.find(element => element > 10);

console.log(found); // Output: 12

Here, the function returns the first element greater than 10.


JavaScript find in array with Strings

const names = ["Alice", "Bob", "Charlie", "David"];

const name = names.find(n => n.startsWith("C"));

console.log(name); // Output: Charlie

You can easily search for strings that meet specific conditions using the array find JavaScript method.


JavaScript find object in array

A common use case for find() is searching for objects in arrays of objects.

const users = [
  { id: 1, name: "Emma" },
  { id: 2, name: "Noah" },
  { id: 3, name: "Olivia" }
];

const user = users.find(u => u.id === 2);

console.log(user); // Output: { id: 2, name: "Noah" }

This is an efficient and readable way to locate an object by a specific property.


JavaScript find array index

Although find() returns the value, not the index, you can use findIndex() to get the index instead.

const numbers = [4, 9, 16, 25];

const index = numbers.findIndex(n => n > 15);

console.log(index); // Output: 2

If you specifically need the position rather than the value, findIndex() is the appropriate choice.


Difference Between find() and filter()

  • find() returns the first matching element.
  • filter() returns all matching elements in a new array.

const arr = [1, 3, 7, 7, 9];

const firstMatch = arr.find(n => n === 7); // 7
const allMatches = arr.filter(n => n === 7); // [7, 7]

Use find() when you only need one result. This makes it more efficient in large datasets.


Using JavaScript array find with Complex Conditions

const items = [
  { name: "Laptop", price: 1000 },
  { name: "Tablet", price: 500 },
  { name: "Phone", price: 300 }
];

const affordable = items.find(item => item.price < 600);

console.log(affordable); // { name: "Tablet", price: 500 }

You can use any logical condition inside the callback function to match complex criteria.


Using thisArg with find()

You can pass a second argument to use as this inside your callback.

const tools = ["hammer", "wrench", "screwdriver"];

const search = {
  keyword: "wrench",
  match(item) {
    return item === this.keyword;
  }
};

const result = tools.find(search.match, search);

console.log(result); // wrench

This feature is useful when using methods from objects as callbacks.


Handling No Match Found

If no element satisfies the condition, the function returns undefined.

const nums = [2, 4, 6];

const result = nums.find(n => n > 10);

console.log(result); // undefined

Always check for undefined when using the result from find().


Using find() with Optional Chaining

You can combine find() with optional chaining to avoid errors when trying to access a property on a potentially undefined result.

const posts = [
  { id: 1, title: "Hello World" },
  { id: 2, title: "JavaScript Basics" }
];

const post = posts.find(p => p.id === 3);

console.log(post?.title); // undefined, no error

This approach is safer than direct access when the result may not exist.


find() with Arrow Functions vs Regular Functions

Arrow functions provide a concise syntax and are often used with find(), but you can also use regular functions:

const arr = [10, 20, 30];

function isTwenty(val) {
  return val === 20;
}

console.log(arr.find(isTwenty)); // 20

Use the form that best fits your style and readability needs.


find() with Destructured Parameters

You can destructure objects directly in the callback for more clarity.

const people = [
  { name: "John", age: 24 },
  { name: "Jane", age: 32 }
];

const adult = people.find(({ age }) => age > 30);

console.log(adult); // { name: "Jane", age: 32 }

This makes your code more expressive and removes unnecessary property lookups.


Chaining find() with Other Methods

You can chain find() with other array methods for more complex flows.

const items = [
  { id: 1, tags: ["a", "b"] },
  { id: 2, tags: ["c", "d"] }
];

const tag = items.find(item => item.tags.includes("c"))?.id;

console.log(tag); // 2

This pattern combines search and transformation in a single line.


Using find() in Large Arrays

When working with large arrays, find() is efficient because it stops as soon as a match is found.

const bigArray = Array.from({ length: 10000 }, (_, i) => i);

const match = bigArray.find(n => n > 9990);

console.log(match); // 9991

This makes it suitable for performance-sensitive code where only the first match is relevant.


Summary

The find() method is a powerful and expressive way to locate the first matching element in an array. Whether you're working with primitives or searching for complex objects, JavaScript array find provides a clean, readable syntax.

You can use it to implement custom logic with ease, and it pairs well with other array methods. Remember that it returns the value (not the index), stops at the first match, and returns undefined when no match is found. The method supports arrow functions, optional chaining, destructuring, and thisArg for flexible and modern JavaScript usage.

Learn to Code in JavaScript for Free
Start learning now
button icon
To advance beyond this tutorial and learn JavaScript by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster