findAll

Find every node in a tree that matches a predicate, returning a flat array of matches across all branches and depth levels.

Usage

The findAll method performs a depth-first search on the tree and returns an array of all nodes that satisfy the predicate function.

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

const tree = [{ id: 1, type: 'folder', children: [{ id: 2, type: 'file' }, { id: 3, type: 'folder' }] }]

const folders = Tree.findAll(tree, ({ node }) => node.type === 'folder')

// folders => [{ id: 1, type: 'folder', ... }, { id: 3, type: 'folder' }]

API

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

Parameters

tree
T[] required
The source tree array.
predicate
(context: VisitorContext<T>) => boolean required
A predicate function called for each node in the tree. If the function returns true, that node and all its ancestor nodes will be retained in the result. The function receives a context object with the following properties:
config
TreeConfig
Configuration object for customizing the id, pid, children key names in the tree structure.

Returns

T[]
Returns an array containing all matching nodes.

Changelog

No recent changes
Copyright © 2024 - 2026 YiXuan - MIT License