UNPKG

array-tree-filter

Version:
15 lines (14 loc) 461 B
const arrayTreeFilter = (data, filterFn, { childrenKeyName = "children" } = {}) => { const result = []; let children = data; for (let level = 0; children.length > 0; level++) { const foundItem = children.find(item => filterFn(item, level)); if (!foundItem) { break; } result.push(foundItem); children = foundItem[childrenKeyName] || []; } return result; }; export default arrayTreeFilter;