1 | var eachTree = require('./eachTree')
|
2 |
|
3 | /**
|
4 | * 从树结构中根据回调过滤数据
|
5 | *
|
6 | * @param {Object} obj 对象/数组
|
7 | * @param {Function} iterate(item, index, items, path, parent) 回调
|
8 | * @param {Object} options {children: 'children'}
|
9 | * @param {Object} context 上下文
|
10 | * @return {Array}
|
11 | */
|
12 | function filterTree (obj, iterate, options, context) {
|
13 | var result = []
|
14 | if (obj && iterate) {
|
15 | eachTree(obj, function (item, index, items, path, parent, nodes) {
|
16 | if (iterate.call(context, item, index, items, path, parent, nodes)) {
|
17 | result.push(item)
|
18 | }
|
19 | }, options)
|
20 | }
|
21 | return result
|
22 | }
|
23 |
|
24 | module.exports = filterTree
|