//遞歸過(guò)濾隱藏菜單
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表示需要過(guò)濾的tree數(shù)組
validate表示需要過(guò)濾的函數(shù),自定義
例子:

image.png
genAuthList(router, (it) => !it.hidden)
過(guò)濾tree列表數(shù)據(jù)中包含hidden為true的數(shù)據(jù)(我這邊是做菜單隱藏用的)