UNPKG

amos-tool

Version:

amos ui tool

28 lines (24 loc) 753 B
"use strict"; var _utils = require("./utils"); function arrayFilter(r, e) { var i = (e = e || {}).key || "", a = e.value || "", t = e.childrenKey || "children", n = []; return function r(e) { e.forEach(function(e) { var l = e[t]; l && _utils.isArray(l) ? r(l) : e[i].indexOf(a) > -1 && n.push(e); }); }(r || []), n; } function arrayTreeFilter(r, e, i) { (i = i || {}).childrenKeyName = i.childrenKeyName || "children"; var a = r || [], t = [], n = 0; do { var l = a.filter(function(r) { return e(r, n); })[0]; if (!l) break; t.push(l), a = l[i.childrenKeyName] || [], n += 1; } while (a.length > 0); return t; } module.exports = arrayFilter, module.exports.arrayTreeFilter = arrayTreeFilter;