
JavaScript复杂判断优雅的写法
#按钮点击事件 status活动状态
例如:1:开团进行中,2:开团失败,3:商品售空,4:开团成功,5:系统取消
第一种写法:
第一种写法 if else 判断 代码多但是逻辑清晰
const onButtonClick = (status) => {
if(status == 1) {
sendLog('processing') jumpTo('IndexPage')
} else if(status == 2) {
sendLog('fail') jumpTo('FailPage')
} else if(status == 3) {
sendLog('fail') jumpTo('FailPage')
} else if(status == 4) {
sendLog('success') jumpTo('SuccessPage')
} else if(status == 5) {
sendLog('cancel') jumpTo('CancelPage')
} else {
sendLog('other') jumpTo('Index')
}
}第二种写法: switch循环清晰更简单
const onButtonClick = (status) => {
switch (status) {
case 1:
sendLog('processing')
jumpTo('IndexPage')
break
case 2:
case 3:
sendLog('fail')
jumpTo('FailPage')
break
case 4:
sendLog('success')
jumpTo('SuccessPage')
break
case 5:
sendLog('cancel')
jumpTo('CancelPage')
break
default:
sendLog('other')
jumpTo('Index')
break
}
}第三种写法:将判断条件作为对象的属性名,将处理逻辑作为对象的属性值。
const actions = new Map([
[1, ['processing','IndexPage']],
[2, ['fail','FailPage']],
[3, ['fail','FailPage']],
[4, ['success','SuccessPage']],
[5, ['cancel','CancelPage']],
['default', ['other','Index']]
])
const onButtonClick = (status)=>{
let action = actions.get(status) || actions.get('default')
sendLog(action[0])
jumpTo(action[1])
}更多web前端知识,请查阅 HTML中文网 !!
以上就是javascript怎么复杂判断吗?的详细内容,更多请关注易知道|edz.cc其它相关文章!














