我想知道是否有任何方法可以用javascript编写映射器函数,而通过映射函数,我并不是说ES6映射HOF, 我真正需要的是当我收到响应或数据并希望从中产生条件结果时, 例如,如果角色:['ADMIN']执行此操作, 如果role:['HEAD']这样做,现在可以使用if else或switch来完成,但是我不想为此写条件,因为将来有可能会处理更多条件。因此,有一种方法可以创建一个自定义的映射器函数来执行此操作,它在api调用中也很有用,因为当用户具有特定角色时,他/她可以进行此特定的API调用 如果您需要更多信息,请发表评论。
谢谢
答案 0 :(得分:0)
我不知道这样做是否正确,但是您可以创建一个带有函数的对象。
这看起来有点像:
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);