2015-10-14 92 views
4

我似乎无法完成此操作。我知道如何找出这个数字是否可以被3整除,但是一旦我得到3以上的数字,我该如何保持折扣加余数?实施例:7票花费$ 120用javascript计算成本的数量

每个或3 $ 20 $ 50

<input id="raffleTix" type="text" value="0" /> 
if($('#raffleTix').val() % 3 == 0){ 
    raffle = ($('#raffleTix').val()/3) * 50; 
}else if($('#raffleTix').val() < 3){ 
    raffle = $('#raffleTix').val() * 20; 
}else{ 

} 

回答

3

没有必要有任何条件逻辑。这可以用一个简单的公式来完成:

var value = $('#raffleTix').val(); 
var setsOfThree = Math.floor(value/3); 
var singles = value - setsOfThree * 3; 

raffle = setsOfThree * 50 + singles * 20; 

甚至更​​好,它可以全部放在一个功能,使不同的值,可以通过不修改代码:

function computeCost(quantity, setSize, setCost, singleCost) { 
    var sets = Math.floor(quantity/setSize); 
    var singles = quantity - sets * setSize; 

    return sets * setCost + singles * singleCost; 
} 

raffle = computeCost($('#raffleTix').val(), 3, 50, 20); 
+0

谢谢!太棒了。我一直在想这件事。干杯! –

+0

@AaronBacon很高兴我能帮到你。如果有帮助,请不要忘记接受答案。 –