Javascript基础知识:根据检索到的值更改运算符值

时间:2015-10-10 18:18:17

标签: javascript calculator

我是一个Javascript新手,我正在创建一个计算器,为直接护理提供者提取医生费用。我通过在这个帖子中引用BBog的答案来帮助创建一个脚本:

take user input from a Form perform calculation (order of operations) and output back into that form

我成功地收集了各种输入值的总和,并将它们乘以每个输入的不同金额,以达到总价。我甚至设法调整它,以便每个孩子收取的价格如果不是成年人就会改变。

我无法弄清楚的是如何根据添加的儿童数量来更改每个孩子的费用。前两个应该是每个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个孩子或更少的代码工作,但还没有想出如何向第3个孩子和更多的孩子扔东西。我已经尝试了几种方法,所以目前只有一种方法是在黑暗中拍摄。

1 个答案:

答案 0 :(得分:0)

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

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

将会发挥双重作用,但现在它看起来像解决方案。

我想这在某种程度上是一种欺骗,但我认为将所有东西乘以10然后再增加30以使前两个孩子加起来为50美元而不是试图将孩子1和2从3岁以上儿童中分离出来更简单。它得到的结果相同,并发症少。