forEach循环

找到接口对应汉字,弹出提示
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 两个知识点

  1. try{}catch{}的用法
  2. forEach、for循环等不能用return终止循环,需要使用try{}catch{},在try里面抛出异常在catch里面捕获。

参考链接:https://www.jianshu.com/p/e005a47cc487

上一篇:食蔬宝收银称重软件V1.0


下一篇:slickgrid ( nsunleo-slickgrid ) 7 导出EXCEL