JavaScript复杂逻辑判断的技巧性写法是什么

  介绍

这篇文章将为大家详细讲解有关JavaScript复杂逻辑判断的技巧性写法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者开关来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/开关会变得越来越臃肿,越来越看不懂,那么如何更优雅的写判断逻辑,本文带你试一下。

先看一段代码

/* *      *按钮点击事件      * @param{}数量状态活动状态:1开团进行中2开团失败3商品售罄4开团成功5系统取消      */const>/* *   *按钮点击事件   * @param{}数量状态活动状态:1开团进行中2开团失败3商品售罄4开团成功5系统取消   */const> const行动={      & # 39;1 & # 39;:[& # 39;处理# 39;& # 39;IndexPage& # 39;],      & # 39;2 & # 39;:[& # 39;失败# 39;& # 39;FailPage& # 39;],      & # 39;3 & # 39;:[& # 39;失败# 39;& # 39;FailPage& # 39;],      & # 39;4 & # 39;:[& # 39;成功# 39;& # 39;SuccessPage& # 39;],      & # 39;5 & # 39;:[& # 39;取消# 39;& # 39;CancelPage& # 39;],      & # 39;默认# 39;:[& # 39;其他# 39;& # 39;指数# 39;],      }/* *      *按钮点击事件      * @param{}数量状态活动状态:1开团进行中2开团失败3商品售罄4开团成功5系统取消      */const>=新地图(const行动(      [1,[& # 39;处理# 39;& # 39;IndexPage& # 39;]],      [2,[& # 39;失败# 39;& # 39;FailPage& # 39;]],      [3,[& # 39;失败# 39;& # 39;FailPage& # 39;]],      [4,[& # 39;成功# 39;& # 39;SuccessPage& # 39;]],      [5,[& # 39;取消# 39;& # 39;CancelPage& # 39;]],      [& # 39;默认# 39;[& # 39;其他# 39;& # 39;指数# 39;]]      ])/* *      *按钮点击事件      * @param{}数量状态活动状态:1开团进行中2开团失败3商品售罄4开团成功5系统取消      */const>/* *      *按钮点击事件      * @param{}数量状态活动状态:1开团进行中2开团失败3开团成功4商品售罄5有库存未开团      * @param{字符串}身份身份标识:客人客主主态态      */const>=新地图(const行动(      [& # 39;guest_1& # 39;()=比;{/*做某事*/}),      [& # 39;guest_2& # 39;()=比;{/*做某事*/}),      [& # 39;guest_3& # 39;()=比;{/*做某事*/}),      [& # 39;guest_4& # 39;()=比;{/*做某事*/}),      [& # 39;guest_5& # 39;()=比;{/*做某事*/}),      [& # 39;master_1& # 39;()=比;{/*做某事*/}),      [& # 39;master_2& # 39;()=比;{/*做某事*/}),      [& # 39;master_3& # 39;()=比;{/*做某事*/}),      [& # 39;master_4& # 39;()=比;{/*做某事*/}),      [& # 39;master_5& # 39;()=比;{/*做某事*/}),      [& # 39;默认# 39;()=比;{/*做某事*/}),      ])/* *      *按钮点击事件      * @param{字符串}身份身份标识:客人客主主态态      * @param{}数量状态活动状态:1开团进行中2开团失败3开团成功4商品售罄5有库存未开团      */const> const行动={      & # 39;guest_1& # 39;:()=比;{/*做某事*/},      & # 39;guest_2& # 39;:()=比;{/*做某事*/},//?      }            const>=新地图(const行动(      [{      身份:& # 39;客人# 39;      状态:1      }()=比;{/*功能阳极*/}),      [{      身份:& # 39;客人# 39;      现状:2      }()=比;{/*功能阳极*/}),      [{      身份:& # 39;客人# 39;      现状:3      }()=比;{/*功能阳极*/}),      [{      身份:& # 39;客人# 39;      状态:4      }()=比;{/*功能阳极*/}),      [{      身份:& # 39;客人# 39;      状态:5      }()=比;{/* functionB */}),//?      )

好一点的写法是将处理逻辑函数进行缓存:

const行动=()=比;{      const功能阳极=()=比;{/*做某事*/}      const functionB=()=比;{/*做某事*/}      返回新地图([      [{      身份:& # 39;客人# 39;      状态:1      },功能阳极),      [{      身份:& # 39;客人# 39;      现状:2      },功能阳极),      [{      身份:& # 39;客人# 39;      现状:3      },功能阳极),      [{      身份:& # 39;客人# 39;      状态:4      },功能阳极),      [{      身份:& # 39;客人# 39;      状态:5      },functionB],//?      ])      }            const> const行动=()=比;{      const功能阳极=()=比;{/*做某事*/}      const functionB=()=比;{/*做某事*/}      返回新地图([      [/^ guest_[1 - 4]/美元,功能阳极),      [/^ guest_5/美元,functionB),//?      ])      }            const> const行动=()=比;{      const功能阳极=()=比;{/*做某事*/}      const functionB=()=比;{/*做某事*/}      const functionC=()=比;{/*发送日志*/}      返回新地图([      [/^ guest_[1 - 4]/美元,功能阳极),      [/^ guest_5/美元,functionB),      [/^ guest_。* $/,functionC],//?      ])      }            李const>

JavaScript复杂逻辑判断的技巧性写法是什么