找到接口对应汉字,弹出提示
const apisObj = {
'tokenlogin': '头部菜单权限',
'newhome/quickNavigation': '便捷入口',
'newhome/task':'待办任务',
'newhome/home':'培训公告',
'newhome/missionCenter':'侧栏菜单列表',
'newSwitchRole':'切换角色',
'newhome/home?is_getdic=1&h_flag=2':'培训公告分行搜索字典',
'newhome/home?is_getdic=1&h_flag=1':'培训公告总行搜索字典',
'newhome/home?h_flag=2':'培训公告分行列表',
'newhome/home?h_flag=1':'培训公告总行列表'
};
// 方法一
let count = 0;
function forApisObj(apisObj) {
let returnValue = '';
Object.keys(apisObj).forEach((key)=> {
count ++
if('newSwitchRole?token=123456'.indexOf(key) >= 0) {
returnValue = apisObj[key];
}
})
return returnValue;
}
console.log(forApisObj(apisObj), count);
// count = 10; 将对象属性全部遍历完成才结束
// 方法二
let count = 0;
function forApisObj(apisObj) {
let returnValue = '';
try {
Object.keys(apisObj).forEach((key)=> {
count ++
if('newSwitchRole?token=123456'.indexOf(key) >= 0) {
returnValue = apisObj[key];
throw new Error()
}
})
} catch (e) {
return returnValue;
}
}
console.log(forApisObj(apisObj), count); // 找到就跳出
这两个显然第二个方法会更好一点,毕竟少执行了几次循环体。
get 两个知识点
- try{}catch{}的用法
- forEach、for循环等不能用return终止循环,需要使用try{}catch{},在try里面抛出异常在catch里面捕获。