javascript - 对于多个 if else 问题,是否有更简单的方法?

标签 javascript html

<分区>

我试图根据两个值生成一个结果,这两个值都是应用于多个输入字段的公式的结果。

我已经成功地创建了大量的 if/else 语句,这些语句基本上具有首先消除最小值的能力。

现在只是这个“简单”的 if/else 函数大约有 40~50 行代码。而且我缺乏知识使我无法找到更好的解决方案。我希望有人能指出我的方向。

我尝试研究从数组中进行选择,但我不认为这是解决我的问题的方法,因为没有 1 个值,但需要 2 个值。

if (document.getElementById('reserve').checked == false) {
      if (capaciteit_te < 1.01 && max_opvoer_clc < 4.01) {
        document.getElementById('advies').innerHTML = pomp1
      } else {
        if (capaciteit_te < 2.01 && max_opvoer_clc < 3.01) {
          document.getElementById('advies').innerHTML = pomp1
        } else {
          if (capaciteit_te < 3.01 && max_opvoer_clc < 2.01) {
            document.getElementById('advies').innerHTML = pomp1
          } else {
            if (capaciteit_te < 4.01 && max_opvoer_clc < 1.01) {
              document.getElementById('advies').innerHTML = pomp1
            } else {
              if (capaciteit_te < 1.01 && max_opvoer_clc < 6.01) {
                document.getElementById('advies').innerHTML = pomp2
              } else {
                if (capaciteit_te < 2.01 && max_opvoer_clc < 6.01) {
                  document.getElementById('advies').innerHTML = pomp2
                } else {
                  if (capaciteit_te < 3.01 && max_opvoer_clc < 5.01) {
                    document.getElementById('advies').innerHTML = pomp2
                  } else {
                    if (capaciteit_te < 3.01 && max_opvoer_clc < 6.01) {
                      document.getElementById('advies').innerHTML = pomp3
                    } else {
                      if (capaciteit_te < 4.01 && max_opvoer_clc < 4.01) {
                        document.getElementById('advies').innerHTML = pomp2
                      } else {
                        if (capaciteit_te < 5.01 && max_opvoer_clc < 3.01) {
                          document.getElementById('advies').innerHTML = pomp2
                        } else {
                          if (capaciteit_te < 6.01 && max_opvoer_clc < 2.01) {
                            document.getElementById('advies').innerHTML = pomp2
                          } else {
                            if (capaciteit_te < 5.01 && max_opvoer_clc < 5.01) {
                              document.getElementById('advies').innerHTML = pomp3
                            } else {
                              if (capaciteit_te < 6.01 && max_opvoer_clc < 5.01) {
                                document.getElementById('advies').innerHTML = pomp3
                              } else {
                                if (capaciteit_te < 8.01 && max_opvoer_clc < 4.01) {
                                  document.getElementById('advies').innerHTML = pomp3
                                } else {
                                  if (capaciteit_te < 10.01 && max_opvoer_clc < 3.01) {
                                    document.getElementById('advies').innerHTML = pomp3
                                  } else {
                                    if (capaciteit_te < 11.01 && max_opvoer_clc < 2.01) {
                                      document.getElementById('advies').innerHTML = pomp3
                                    } else {
                                      if (capaciteit_te < 16.01 && max_opvoer_clc < 2.01) {
                                        document.getElementById('advies').innerHTML = pomp4
                                      } else {
                                        if (capaciteit_te < 20.01 && max_opvoer_clc < 1.01) {
                                          document.getElementById('advies').innerHTML = pomp4
                                        } else {
                                          if (capaciteit_te < 10.01 && max_opvoer_clc < 4.01) {
                                            document.getElementById('advies').innerHTML = pomp5
                                          } else {
                                            if (capaciteit_te < 16.01 && max_opvoer_clc < 3.01) {
                                              document.getElementById('advies').innerHTML = pomp5
                                            } else {
                                              if (capaciteit_te < 20.01 && max_opvoer_clc < 2.01) {
                                                document.getElementById('advies').innerHTML = pomp5
                                              }
                                              if (capaciteit_te < 6.01 && max_opvoer_clc < 6.01) {
                                                document.getElementById('advies').innerHTML = pomp6
                                              } else {
                                                if (capaciteit_te < 11.01 && max_opvoer_clc < 5.01) {
                                                  document.getElementById('advies').innerHTML = pomp6
                                                } else {
                                                  if (capaciteit_te < 16.01 && max_opvoer_clc < 4.01) {
                                                    document.getElementById('advies').innerHTML = pomp6
                                                  } else {
                                                    if (capaciteit_te < 20.01 && max_opvoer_clc < 3.01) {
                                                      document.getElementById('advies').innerHTML = pomp6
                                                    } else {
                                                      if (capaciteit_te < 18.01 && max_opvoer_clc < 6.01) {
                                                        document.getElementById('advies').innerHTML = pomp8
                                                      } else {
                                                        if (capaciteit_te < 20.01 && max_opvoer_clc < 5.01) {
                                                          document.getElementById('advies').innerHTML = pomp8
                                                        } else {
                                                          if (capaciteit_te < 20.01 && max_opvoer_clc < 6.01) {
                                                            document.getElementById('advies').innerHTML = pomp12
                                                          } else {
                                                            document.getElementById('advies').innerHTML = "Geen bijpassende pomp gevonden, meem contact met DAB op om te kijken welke pomp voor u geschikt is"
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    } else {document.getElementById('advies').innerHTML = "Reserve pomp nog niet geimplementeerd"}

该功能有效,但我想要一种不同的方法

最佳答案

为您的 3 个“值”使用数组并对其进行迭代。 下面是一个示例,希望它很清楚。

const capaciteit_te = 0.5;
const max_opvoer_clc = 2.5;

const a = [
  [ 1.01, 4.01, "pomp1" ],
  [ 2.01, 3.01, "pomp1" ],
  [ 3.01, 2.01, "pomp1" ],
  [ 4.01, 1.01, "pomp1" ],
  [ 1.01, 6.01, "pomp2" ]
];

let found = false;

for (let i = 0; i < a.length; i++) {
  const b = a[i];
  if (capaciteit_te < b[0] && max_opvoer_clc < b[1]) {
    console.log(b[2]);
    found = true;
    break;
  }
}

if (!found) {
  console.log("not found!");
}

关于javascript - 对于多个 if else 问题,是否有更简单的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444388/

相关文章:

javascript - 无法让 Sublime Javascript Build 工作

javascript - 将变量定义为 var $a=$() 和 var a 之间的区别?

javascript - 导航栏折叠时 Bootstrap 组元素内联?

html - 如何构建此 HTML 以将内容置于 div 中

html - Protractor AngularJS CSS 选择器查找多个元素

javascript - 如何从下拉列表中填写输入字段

javascript - ES6 模块加载器是标准的一部分吗?

javascript - 设置将使用javascript在新窗口中打开的链接的宽度和高度参数?

javascript - 如何更改伪 :before element by Javascript 的内容值

html - 使用 Ticker 的 easelJS 行