Conditionals - if else 模式
2012-10-26 18:21
281 查看
//常规模式if (type === 'foo' || type === 'bar') {}
// 正则if (/^(foo|bar)$/.test(type)) {}
// 对象字面量查询if (({foo:1, bar:1})[type]) {}
//逻辑运算符(type === 'foo' || type === 'bar') && (type='1')
//折半搜索if (value == 0) { return result0;} else if (value == 1) { return result1;} else if (value == 2) { return result2; else if (value == 3) { return result3;} else if (value == 4) { return result4;} else if (value == 5) { return result5;} else if (value == 6) { return result6;} else if (value == 7) { return result7;} else if (value == 8) { return result8;} else if (value == 9) { return result9;} else { return result10;}
==============转换为===============if (value < 6) { if (value < 3) { if (value == 0) { return result0; } else if (value == 1) { return result1; } else { return result2; } } else { if (value == 3) { return result3; } else if (value == 4) { return result4; } else { return result5; } }} else { if (value < 8) { if (value == 6) { return result6; } else { return result7; } } else { if (value == 8) { return result8; } else if (value == 9) { return result9; } else { return result10; } }}
//一对一的数组和对象的查找结果if (value == 0) { return result0;} else if (value == 1) { return result1;} else if (value == 2) { return result2;}
================转换为=================// 定义一个包含所有结果的集数组var results = [result0, result1, result2];// 键值对应return results[value];
// 正则if (/^(foo|bar)$/.test(type)) {}
// 对象字面量查询if (({foo:1, bar:1})[type]) {}
//逻辑运算符(type === 'foo' || type === 'bar') && (type='1')
//折半搜索if (value == 0) { return result0;} else if (value == 1) { return result1;} else if (value == 2) { return result2; else if (value == 3) { return result3;} else if (value == 4) { return result4;} else if (value == 5) { return result5;} else if (value == 6) { return result6;} else if (value == 7) { return result7;} else if (value == 8) { return result8;} else if (value == 9) { return result9;} else { return result10;}
==============转换为===============if (value < 6) { if (value < 3) { if (value == 0) { return result0; } else if (value == 1) { return result1; } else { return result2; } } else { if (value == 3) { return result3; } else if (value == 4) { return result4; } else { return result5; } }} else { if (value < 8) { if (value == 6) { return result6; } else { return result7; } } else { if (value == 8) { return result8; } else if (value == 9) { return result9; } else { return result10; } }}
//一对一的数组和对象的查找结果if (value == 0) { return result0;} else if (value == 1) { return result1;} else if (value == 2) { return result2;}
================转换为=================// 定义一个包含所有结果的集数组var results = [result0, result1, result2];// 键值对应return results[value];
相关文章推荐
- 利用设计模式替代项目中的if else(转)
- if-else重构与设计模式
- 状态模式、职责链模式——省去if-else的繁琐结构
- 活用设计模式:如何避免一连串的if else
- 设计模式——行为型模式之借助策略模式(Strategy Pattern)减少使用不必要的if-else if -else和switch-case(三)
- 用设计模式来代替臃肿的ifelse层层判断
- [原创]State模式(状态模式)消除烦琐的if..else语句
- 用设计模式来代替臃肿的ifelse层层判断
- Java中利用设计模式来代替复杂的if...else...语句(三层以上的嵌套循环)
- 架构 之 使用子类多态 and 使用state模式(使用面向对象技术替代switch-case和if-else)
- 结合策略模式和HashMap摆脱if else
- 用设计模式来代替臃肿的ifelse层层判断 .
- 使用命令模式,告别if-else
- 重构if...else...或者switch程序块 为 中介者(Mediator)模式.的思考
- 从if else 到设计模式的转变
- 使用命令模式,告别if-else
- State模式(状态模式)消除烦琐的if..else语句
- 设计模式-策略模式Strategy以及消灭if else
- 策略模式:代替if-else-if
- 大量if else 或者switch case可以采用的设计模式-----状态模式