//递归实现
function treeToList (tree, result = [], level = 1) {
tree.forEach(node => {
result.push(node)
node.level = level++
node.children && treeToList(node.children, result, level)
})
return result
}
// 循环实现
function treeToList (tree) {
let result = tree.map(node => (node.level = 1, node))
for (let i = 0; i < result.length; i++) {
if (!result[i].children) continue
let list = result[i].children.map(node => (node.level = result[i].level + 1, node))
result.splice(i+1, 0, ...list)
}
return result
}