Javascript基础知识:根据检索值更改操作符值

Javascript basics: change operator value depending on retrieved value

本文关键字:操作符 检索 基础知识 Javascript      更新时间:2023-09-26

我是一个Javascript新手,我正在创建一个计算器,为直接护理提供者获取医生费用。我得到了帮助创建一个脚本参考BBog的回答在这个线程:

从表单中获取用户输入,执行计算(操作顺序)并输出回该表单

我成功地收集了各种输入值的总和,并将它们乘以每个输入的不同美元金额,从而得到总价格。我甚至设法调整了一下,如果他们不是大人,每个孩子的收费也会改变。

我还没能弄清楚的是如何根据增加的孩子的数量来改变每个孩子的费用。前两个应该是每个25美元,而其他孩子应该是10美元,例如1个25美元,2个50美元,3个60美元,4个70美元等。我所尝试的一切都有语法错误,我很难弄清楚如何表达这个问题,以便通过谷歌得到答案。

下面是目前为止的代码:
function calculate() {
var adult1 = document.DPCcalculator.adult20to44.value * 55;
var adult2 = document.DPCcalculator.adult45to64.value * 75;
var adult3 = document.DPCcalculator.adult65.value * 95;
var childvalue = document.DPCcalculator.child.value;    
var child2 = document.DPCcalculator.child19to22.value * 30;
if (childvalue <= 2); {
    (child1 = document.DPCcalculator.child.value * 25);
}
// here's what I don't know how to fix
// if (childvalue > 2); {
    // (child1 = childvalue > 2 * 10 + 50);
// }
if (adult1 + adult2 + adult3 === 0) {
    (child1 = document.DPCcalculator.child.value * 70);
}
result = (adult1 + adult2 + adult3 + child1 + child2);
document.DPCcalculator.output.value = result;
}

除了我上面提到的每个孩子花费的有条件的东西之外,一切都有效。我有2个孩子或更少的代码工作,但还没有弄清楚如何扔一些不同的第三个孩子和以上。我已经尝试了几种方法,所以目前的结果只是我在黑暗中的一次尝试。

嗯,快速检查似乎表明我已经通过开关解决了这个问题:

switch (true)
    { case childvalue <= 2:
        child1 = childvalue * 25;
        break;
        case childvalue > 2:
        child1 = childvalue * 10 + 30;
    }

将会尝试确保它能够工作,但现在它看起来像是解决方案。

我想这在某种程度上是一种欺骗,但我认为将所有东西乘以10,然后加上30,使前两个孩子加起来是50美元比试图将孩子1和2与孩子3+分开要简单得多。它可以得到相同的结果,而且更简单。