我想知道是否有任何方法可以用javascript编写映射器函数,我所说的map函数并不是指ES6映射HOF,我真正需要的是当我得到响应或数据并且我希望从中产生条件结果时,例如,如果角色:['管理员'] 执行此操作,如果 role:['HEAD'] 这样做,现在可以使用 if else 或 switch 来完成,但我不想为此编写条件,因为将来可能会处理更多条件。那么有没有办法创建一个自定义映射器函数来做到这一点,它在 api 调用中也很有用,因为当用户具有特定角色时,他/她可以进行此特定 API 调用如果您需要更多信息,请发表评论。
谢谢
这是否是正确的方法,但你可以创建一个包含函数的对象。
这看起来有点像这样:
const map = {
'ADMIN': () => { console.log('your role is admin') },
'HEAD': () => { console.log('your role is head') }
};
map['ADMIN'](); // Outputs 'your role is admin'
但是,如果您出于任何原因收到垃圾数据怎么办。您的代码将出错。
因此,您需要捕获该错误:
const role = 'blarg';
try {
map[role]();
} catch(e) {
console.log('submittet incorect data')
}
或者检查对象中是否存在role
键:
if(Object.keys(map).includes(role)) {
map[role]()
}
但老实说,我仍然认为我会做这样的事情:
function handleRole(role) {
switch(role) {
case 'ADMIN': function_for_admin(); break;
case 'HEAD': function_for_head(); break;
}
}
handleRole(role);