在vue项目中使用elementUI的tree处理后端返回的数据:数据的特点有个parentId,主要是把parentId相同的数据整合成tree的要求,然后把数据结构在页面中显示出来。
function generateTree (origin, list) {
let _tree = [] // 下一次递归用到的父节点列表
let _arr = [] // 未匹配父节点的列表
list.forEach(item => {
let hadPush = false // 用于判断 item 是否已经成功匹配父节点
origin.forEach(elem => {
// 判断 id 和 parentId 的关系
if (elem.id == item.parentId) {
// 匹配父节点
item.children = []
elem.children.push(item) // 放入 tree
_tree.push(item) // 放入父节点列表,下次递归用到
hadPush = true
}