首页 > 解决方案 > 是否有多个 if else 问题的更简单方法?

问题描述

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

我已经成功地创建了大量的 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"}

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

标签: javascripthtml

解决方案


为您的 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!");
}


推荐阅读