UNPKG

dragon-mobile-ui

Version:
24 lines (22 loc) 592 B
'use strict'; function arrayTreeFilter(data, filterFn, options) { options = options || {}; options.childrenKeyName = options.childrenKeyName || 'children'; var children = data || []; var result = []; var level = 0; var foundItem = void 0; do { var _foundItem = children.filter(function (item) { return filterFn(item, level); })[0]; if (!_foundItem) { break; } result.push(_foundItem); children = _foundItem[options.childrenKeyName] || []; level += 1; } while (children.length > 0); return result; } module.exports = arrayTreeFilter;