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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值