首页 > 解决方案 > 如何使大型 if/else 语句更严格?

问题描述

我有以下内容:

if (value === section1) {
  runChecks(checkObject[1].value1, checkObject[1].value2, leftAlign);
} else if (value === section2) {
  runChecks(checkObject[2].value1, checkObject[2].value2, rightAlign);
} else if (value === section3) {
  runChecks(checkObject[3].value1, checkObject[3].value2, leftAlign);
} else if (value === section4) {
  runChecks(checkObject[4].value1, checkObject[4].value2, rightAlign);
} else if (value === section5) {
  runChecks(checkObject[5].value1, checkObject[5].value2, leftAlign, true);
} else if (value === section6) {
  runChecks(checkObject[6].value1, checkObject[6].value2, rightAlign);
} ...

它运行的时间比这更长,因为有大量预定义的值。

检查对象示例:

  var checkObject = [{
    value1: '19.1%',
    value2: '19.1%',
  }, {
   value1: '19.1%',
    value2: '19.1%',
  }, {
   value1: '19.1%',
    value2: '19.1%',
  }, ...

我想将其分解并提高效率,但鉴于传递给 runChecks() 的数据存在差异,我不确定如何管理它。

标签: javascriptif-statement

解决方案


使用开关!

switch(value){
    case section1:
        runChecks(checkObject[1].value1, checkObject[1].value2, leftAlign);
    break
    case section2:
      runChecks(checkObject[2].value1, checkObject[2].value2, rightAlign);
    break
    ... 
}

它并不比使用更短,if / else if / else但看起来更干净。


推荐阅读