UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

30 lines (27 loc) 947 B
import { __assign } from 'tslib'; import { isArray, isObject } from 'ut2'; function filterTree(tree, predicate, childrenField, nodeAssign) { if (childrenField === void 0) { childrenField = 'children'; } if (nodeAssign === void 0) { nodeAssign = 'spread'; } var result = []; if (!isArray(tree)) { return result; } tree.forEach(function (item) { var newItem = item; if (isObject(item)) { newItem = nodeAssign === 'spread' ? __assign({}, item) : item; } if (predicate(newItem)) { if (isObject(newItem)) { var childs = newItem[childrenField]; if (isArray(childs) && childs.length > 0) { newItem[childrenField] = filterTree(childs, predicate, childrenField, nodeAssign); } } result.push(newItem); } }); return result; } export { filterTree as default };