39 lines
892 B
JavaScript
39 lines
892 B
JavaScript
var setupDefaults = require('./setupDefaults')
|
|
|
|
var each = require('./each')
|
|
|
|
var assign = require('./assign')
|
|
|
|
function unTreeList (result, array, opts) {
|
|
var optChildren = opts.children
|
|
var optData = opts.data
|
|
var optClear = opts.clear
|
|
each(array, function (item) {
|
|
var children = item[optChildren]
|
|
if (optData) {
|
|
item = item[optData]
|
|
}
|
|
result.push(item)
|
|
if (children && children.length) {
|
|
unTreeList(result, children, opts)
|
|
}
|
|
if (optClear) {
|
|
delete item[optChildren]
|
|
}
|
|
})
|
|
return result
|
|
}
|
|
|
|
/**
|
|
* 将一个树结构转成数组列表
|
|
*
|
|
* @param {Array} array 数组
|
|
* @param {Object} options { children: 'children', data: 'data', clear: false }
|
|
* @return {Array}
|
|
*/
|
|
function toTreeArray (array, options) {
|
|
return unTreeList([], array, assign({}, setupDefaults.treeOptions, options))
|
|
}
|
|
|
|
module.exports = toTreeArray
|