findAll

查找并返回所有满足 predicate 条件的节点。

findAll

findAll 方法在树中深度优先搜索,并返回所有满足 predicate 函数条件的节点组成的数组。

用法

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[]

参数

tree
T[] required
源树形结构数组。
predicate
(context: VisitorContext<T>) => boolean required
一个谓词函数,对树中的每个节点调用。如果函数返回 true,该节点及其所有父节点将被保留在结果中。 该函数接收一个包含以下属性的 context 对象:
config
TreeConfig
用于自定义树形结构中 id, pid, children 键名的配置对象。

返回值

T[]
返回一个包含所有匹配节点的数组。

Changelog

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