路由权限过滤
export default function filterRoutes(allRoutes,auth){
let res = allRoutes.filter(v=>{
if(v.meta.auth.indexOf(auth) > -1){
return v;
}
})
res.length && res.map(v=>{
if(v.children){
filterRoutes(v.children,auth);
}
})
return res;
}
数组套对象去重/
let data = [{ a: 1, tag: 'b' }, { a: 1, tag: 'b' }, { a: 1, tag: 'b' }, { a: 1, tag: 'b' }]
let obj = {};
data = data.reduce((item, next) => {
obj[next.tag] ? '' : obj[next.tag] = true && item.push(next);
return item;
}, []);
/ 数组中计算某个属性出现的次数
封装函数:
let counts = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
使用: // 数组中计算某个属性出现的次数
let counts = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
// 获取标签数据
let list = []
payload.forEach(v => {
v.tag && list.push(v.tag)
})
let data = []
list.forEach(v => {
data.push({
tag: v,
count: counts(list, v)
})
})