UNPKG

@mirari/mp-common

Version:

小程序公共库

24 lines (23 loc) 679 B
/** * https://github.com/afc163/array-tree-filter */ function arrayTreeFilter(data, filterFn, options) { options = options || {}; options.childrenKeyName = options.childrenKeyName || "children"; var children = data || []; var result = []; var level = 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; } export default arrayTreeFilter;