- 项目经历,useRequest是怎么设计的
- 插件体系是怎么实现的
- Hooks和普通的函数之间的区别
- 防抖节流
- 实习经历,联动搜索框怎么复用
- setState,这个回去好好看看
- Vue3的Hook和React Hook的区别
- Vue3中怎么使用生命周期
- 同步和异步的概念
- JS异步任务有哪些
- 浏览器缓存
- interface和type的区别
- 手写题,计算菜单路径(面包屑)
function calculateBreadcrumbPath(menuList, currentPage) {
let path = [];
for (let item of menuList) {
if (item.name === currentPage) {
path.push(item.name);
break;
}
if (item.children) {
let subPath = calculateBreadcrumbPath(item.children, currentPage);
if (subPath.length > 0) {
path.push(item.name);
path = path.concat(subPath);
break;
}
}
}
return path;
}
let menuList = [
{
name: '管理',
children: [
{
name: '列表',
children: [
{ name: '用户详情' },
{ name: '权限列表' }
]
}
]
}
];
let currentPage = '用户详情';
console.log(calculateBreadcrumbPath(menuList, currentPage));
#软件开发笔面经#