UNPKG

util-helpers

Version:

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

36 lines (32 loc) 973 B
'use strict'; var ut2 = require('ut2'); function findTreeNode(tree, predicate, childrenField) { if (childrenField === void 0) { childrenField = 'children'; } var stack = []; var node; if (ut2.isArray(tree)) { ut2.forEach(tree, function (item) { stack.push(item); while (stack.length) { var temp = stack.pop(); if (predicate(temp)) { node = temp; break; } if (ut2.isObject(temp)) { var childs = temp[childrenField]; if (ut2.isArray(childs) && childs.length > 0) { childs.forEach(function (c) { stack.push(c); }); } } } if (node) { return false; } }); } return node; } module.exports = findTreeNode;