相信所有的程序猿都经历过if else,甚至是很长很长的if else,在你写这些if else ,有没有感觉非常头疼,就像是小学生在抄课本,哈哈哈,现在就换一个思路,重写if else吧。
const rules = {
x : function(a,b,c) {},
y : function(a,b,c) {},
z : function(a,b,c) {},
}
function demo(a,b,c) {
const action = determineAction(a,b,c);
return rules[action](a,b,c);
}
这里利用函数键值对的方法,来代替了if else的判断,整个逻辑也更加清晰,代码可读性和修改性也比较强了。
思考:能不能把determineAction也优化一下,看起来会更舒服呢。
const rules = [
{
match : function(a, b, c) {}
action : function(a, b, c) {}
},
{
match : function(a, b, c) {}
action : function(a, b, c) {}
},
{
match : function(a, b, c) {}
action : function(a, b, c) {}
}
]
function demo(a, b, c) {
for(let i = 0; i < rules.length; i++) {
if(rules[i].match(a, b, c)) {
return rules[i].action(a, b, c);
}
}
}