find (Lodash Compatibility) ​
Use Array.prototype.find()
This find function operates slowly due to complex object processing, support for various condition formats, etc.
Instead, use the faster and more modern Array.prototype.find().
Finds the first element in an array or object that matches the condition.
const result = find(collection, predicate, fromIndex);Reference ​
find(collection, predicate, fromIndex?) ​
Use find when you want to find the first element that satisfies a specific condition in an array or object. The condition can be specified in various formats such as a function, partial object, property-value pair, property name, etc.
import { find } from 'es-toolkit/compat';
// Using a test function
const numbers = [1, 2, 3, 4, 5];
find(numbers, x => x > 3);
// Returns: 4
// Using a property name
const users = [
{ name: 'Alice', active: false },
{ name: 'Bob', active: true },
{ name: 'Charlie', active: true },
];
find(users, 'active');
// Returns: { name: 'Bob', active: true }
// Using a partial object
find(users, { active: true });
// Returns: { name: 'Bob', active: true }
// Using a property-value pair
find(users, ['name', 'Charlie']);
// Returns: { name: 'Charlie', active: true }You can specify a starting index.
import { find } from 'es-toolkit/compat';
const numbers = [1, 2, 3, 4, 5];
find(numbers, x => x > 2, 2);
// Returns: 3 (starts searching from index 2)It works the same way for objects.
import { find } from 'es-toolkit/compat';
const scores = { math: 90, english: 75, science: 85 };
find(scores, score => score >= 80);
// Returns: 90null or undefined are treated as empty collections and return undefined.
import { find } from 'es-toolkit/compat';
find(null, x => x > 0);
// Returns: undefined
find(undefined, x => x > 0);
// Returns: undefinedParameters ​
collection(ArrayLike<T> | Record<string, unknown> | null | undefined): The array or object to search.predicate(((item: T, index: number, collection: any) => unknown) | Partial<T> | [keyof T, unknown] | PropertyKey): The search condition. Can use a function, partial object, property-value pair, or property name.fromIndex(number, optional): The index to start searching from. Defaults to0.
Returns ​
(T | undefined): Returns the first element that satisfies the condition. If not found, returns undefined.

