//递归过滤隐藏菜单
const genAuthList=(tree = [], validate = () => {}, param = [], arr = []) =>{
if (!tree.length) return []
for (let item of tree) {
if (!validate.apply(null, [item, ...param])) continue
let node = { ...item, children: [] }
arr.push(node)
if (item.children && item.children.length)
genAuthList(item.children, validate, param, node.children)
}
return arr
},
tree表示需要过滤的tree数组
validate表示需要过滤的函数,自定义
例子:
image.png
genAuthList(router, (it) => !it.hidden)
过滤tree列表数据中包含hidden为true的数据(我这边是做菜单隐藏用的)
网友评论