我是一个Javascript新手,我正在创建一个计算器,它可以为直接医疗提供者收取医生费用。我在这个帖子上引用了BBog的答案,获得了创建脚本的帮助:
take user input from a Form perform calculation (order of operations) and output back into that form
我成功地收集了各种输入值的总和,并将它们乘以每个输入的不同美元金额,以得出总价格。我甚至设法调整了一下,如果他们不是成年人,那么每个孩子收取的价格就会改变。
我还不能弄清楚的是,如何根据添加的孩子数量来更改每个孩子的费用。前两个应该是每个$25,而另外的孩子应该是$10,例如$25为1,$50为2,$60为3,$70为4等等。我沿着这些路线尝试的每一件事都会引起语法错误,我很难弄清楚如何表达这个问题以便通过Google得到答案。
到目前为止,我的代码如下:
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;
}除了我上面提到的每个孩子的费用的有条件的东西之外,一切都是有效的。我有两个孩子或更少的代码工作,但还没有想出如何抛出一些不同的东西,以第三个孩子和更高。我已经尝试了几种方法,所以目前所做的只是我在黑暗中的一种尝试。
发布于 2015-10-11 13:34:46
好吧,快速检查一下似乎表明我已经用一个开关解决了这个问题:
switch (true)
{ case childvalue <= 2:
child1 = childvalue * 25;
break;
case childvalue > 2:
child1 = childvalue * 10 + 30;
}将会加倍确定这是否有效,但现在看起来它是解决方案。
我猜这在某种程度上是一种欺骗,但我决定将所有东西乘以10,然后再加上30,使前两个孩子的总和为50美元,而不是试图将孩子1和2与孩子3+分开。它得到了相同的结果,但复杂度更低。
https://stackoverflow.com/questions/33058934
复制相似问题