UNPKG

dragon-mobile-ui

Version:
22 lines (21 loc) 562 B
function arrayTreeFilter(data, filterFn, options) { options = options || {}; options.childrenKeyName = options.childrenKeyName || 'children'; let children = data || []; let result = []; let level = 0; let foundItem; do { let 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;