UNPKG

930 BJavaScriptView Raw
1var setupDefaults = require('./setupDefaults')
2
3var each = require('./each')
4
5var assign = require('./assign')
6
7function unTreeList (result, array, opts) {
8 var optChildren = opts.children
9 var optData = opts.data
10 var optClear = opts.clear
11 each(array, function (item) {
12 var children = item[optChildren]
13 if (optData) {
14 item = item[optData]
15 }
16 result.push(item)
17 if (children && children.length) {
18 unTreeList(result, children, opts)
19 }
20 if (optClear) {
21 delete item[optChildren]
22 }
23 })
24 return result
25}
26
27/**
28 * 将一个树结构转成数组列表
29 *
30 * @param {Array} array 数组
31 * @param {Object} options { children: 'children', data: 'data', clear: false }
32 * @return {Array}
33 */
34function toTreeArray (array, options) {
35 return unTreeList([], array, assign({}, setupDefaults.treeOptions, options))
36}
37
38module.exports = toTreeArray