废话不说直接上代码,
参考博文https://segmentfault.com/q/1010000018197249/a-1020000018203261
/// <summary>
/// 过滤树形结构数据
/// </summary>
/// <param name="nodes">树形节点数据要求是数组类型</param>
/// <param name="childrenName">child的fieldName</param>
/// <param name="predicate">过滤方法</param>
function filterTreeData(nodes, childrenName, predicate) {
// 如果已经没有节点了,结束递归
if (!(nodes && nodes.length)) {
return [];
}
const newChildren = [];
for (const node of nodes) {
if (predicate(node)) {
// 如果节点符合条件,直接加入新的节点集
newChildren.push(node);