javascript - 是否有多个 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"}
该功能有效,但我想要一种不同的方法
解决方案
为您的 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!");
}
推荐阅读
- laravel - \"/home/devops/Dev/Laravel/designhouse/storage/logs\" 中没有现有目录,无法创建:权限被拒绝"
- javascript - Three.JS - 使用相同的骨骼结构在 SkinnedMeshes 之间共享骨架
- shell - Kubernetes 在 pod 中执行 cat 从脚本块执行
- c# - Xamarin 选项卡式页面 MVVM 在页面之间传递数据
- azure - 在 Blazor 应用程序上下载 JS 和 CSS 文件时的性能问题,即使它们被缓存
- javascript - 如何在 typescript 构造函数运行之前设置一个属性
- codeigniter-4 - Codeigniter 4将插入的ID从第一个表保存到第二个表中
- java - HttpsURLConnection:连接超时
- excel - 将数据从一张表复制到另一张表,状态为已更新
- .net-core - Aspose PDF 错误:“Gdip”在 Mac OSX 上使用 Dotnet Core 3.x 应用程序引发异常