UNPKG

util-helpers

Version:

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

34 lines (31 loc) 971 B
import { isArray, forEach, isObject } from 'ut2'; function findTreeNode(tree, predicate, childrenField) { if (childrenField === void 0) { childrenField = 'children'; } var stack = []; var node; if (isArray(tree)) { forEach(tree, function (item) { stack.push(item); while (stack.length) { var temp = stack.pop(); if (predicate(temp)) { node = temp; break; } if (isObject(temp)) { var childs = temp[childrenField]; if (isArray(childs) && childs.length > 0) { childs.forEach(function (c) { stack.push(c); }); } } } if (node) { return false; } }); } return node; } export { findTreeNode as default };