如何用JavaScript将冗余if else语句重构为可复用代码?
重构嵌套过多的if-else代码示例
原代码存在大量嵌套和重复逻辑,我们可以通过提前返回和提取重复逻辑来让代码更简洁易读:
重构后的代码
const output = () => { // 优先处理:result.title存在且非空时直接返回 if (result?.title && !isEmpty(result.title)) { return result.title; } // 处理name存在的情况,复用逻辑避免重复 if (name) { switch (status) { case 'passed': return `${name} matches`; case 'failed': return `${name} does not match`; } } // 其他情况直接返回对应状态的标题 return titleByStatus[status]; }; const title = output();
优化说明
- 提前返回减少嵌套:先判断最高优先级的
result.title非空情况,直接return,避免后续多层嵌套 - 提取重复逻辑:把原代码中两处重复的
name+status判断合并,用switch替代零散if,逻辑更清晰 - 扁平化结构:去掉多层else嵌套,每一个条件分支都通过return提前退出,代码逻辑一目了然
注:原代码中有笔误Name(应为小写name),重构时已修正。
内容的提问来源于stack exchange,提问作者stackuser
相关产品推荐
相关产品推荐

