文章
问答
冒泡
一个用户分两个角色后权限去重(前端)

当一个用户有两个角色时,后段会根据两个角色取两次权限,但是他特么不去重,导致前端会显示两个菜单,然后就开始逼逼赖赖。前端做简单的去重,只有两层的,不适用多层去重

[
    {
        title: '',
        id: '1',
        children: []
    }
]

思路就是新建一个Object对象,把第一层相同的id作为key,把children作为value,遇到相同的合并,最后再重构回原来的数据格式

let tmp = {}
for(let i = 0; i < arr.length; i++){
    if(tmp[arr[i].id] && tmp[arr[i].id].length > 0){
        tmp[arr[i].id] = tmp[arr[i].id].concat(arr[i].children)
    }
    else{
        tmp[arr[i].id] = arr[i].children
    }
}
let result = []
Object.keys(tmp).map(item => {
    let t = arr.filter(d => d.id == item)[0]
    t.children = tmp[item]
    result.push(t)
})
this.menuList = result				
数组

关于作者

小乙哥
学海无涯,回头是岸
获得点赞
文章被阅读