36 lines
798 B
Java
36 lines
798 B
Java
var setupDefaults = require('../setupDefaults')
|
|
|
|
var each = require('../base/each')
|
|
|
|
var assign = require('../object/assign')
|
|
|
|
function unTreeList (result, array, opts) {
|
|
var children
|
|
var optChildren = opts.children
|
|
var optData = opts.data
|
|
each(array, function (item) {
|
|
children = item[optChildren]
|
|
if (optData) {
|
|
item = item[optData]
|
|
}
|
|
result.push(item)
|
|
if (children) {
|
|
unTreeList(result, children, opts)
|
|
}
|
|
})
|
|
return result
|
|
}
|
|
|
|
/**
|
|
* 将一个树结构转成数组列表
|
|
*
|
|
* @param {Array} array 数组
|
|
* @param {Object} options {children: 'children', data: 'data'}
|
|
* @return {Array}
|
|
*/
|
|
function toTreeArray (array, options) {
|
|
return unTreeList([], array, assign({}, setupDefaults.treeOptions, options))
|
|
}
|
|
|
|
module.exports = toTreeArray
|