js递归整理树形菜单数据
问题:
后端给我们返回的一般都是没有层级结构的数据(即父子菜单数据都在同一级), 这就需要我们前端自己进行递归整理菜单数据
解决:
- 示例数据:
const list = [
{
parentId: 0,
id: 1
},
{
parentId: 0,
id: 2
},
{
parentId: 1,
id: 11
},
{
parentId: 2,
id: 21
},
{
parentId: 11,
id: 111
},
{
parentId: 11,
id: 112
}
]
- vue中递归方法
listToTree(list, parentId = 0){
return list
.filter(item => item.parentId === parentId)
.map(item => ({...item, children: this.listToTree(list, item.id)}))
}
console.log(this.listToTree(list))
原文链接: https://www.cnblogs.com/wenatie/p/14154004.html