---
title: "find"
description: "Find the first tree node that matches a predicate during traversal, returning the node or undefined when nothing matches."
canonical_url: "https://core.mhaibaraai.cn/en/docs/transformers/tree/find"
---
# find

> Find the first tree node that matches a predicate during traversal, returning the node or undefined when nothing matches.

## Usage

The `find` method performs a depth-first search on the tree and returns the first node that satisfies the `predicate` function.

```ts [example.ts]
import { Tree } from '@movk/core'

const tree = [{ id: 1, name: 'A', children: [{ id: 2, name: 'B' }] }]

const node = Tree.find(tree, ({ node }) => node.name === 'B')

// node => { id: 2, name: 'B' }
```

## API

`find<T extends TreeNode>(tree: T[], predicate: (context: VisitorContext<T>) => boolean, config?: TreeConfig): T | undefined`

### Parameters

**tree** (`T[]`) *required*: The source tree array.

**predicate** (`(context: VisitorContext<T>) => boolean`) *required*: A predicate function called for each node in the tree. When the function returns true for the first node, find returns that node and stops traversal.
The function receives a context object with the following properties:The node currently being processed.The depth of the node (root node is 0).An array of nodes from the root to the current node (inclusive).The index of the current node among its siblings.

**config** (`TreeConfig`): Configuration object for customizing the id, pid, children key names in the tree structure.Optional. The key name for the node's unique identifier. Defaults to "id".Optional. The key name for the node's parent identifier. Defaults to "pid".Optional. The key name for the children array. Defaults to "children".

### Returns

**T | undefined**: Returns the first matching node, or undefined if no match is found.

## Changelog

See commit history for [src/transformers/tree/query.ts](https://github.com/mhaibaraai/movk-core/commits/main/src/transformers/tree/query.ts).

---

- [GitHub](https://github.com/mhaibaraai/movk-core/blob/main/src/transformers/tree/query.ts)


## Sitemap

See the full [sitemap](https://core.mhaibaraai.cn/sitemap.md) for all pages.
