gpt4 book ai didi

javascript - 定价变化 v2

转载 作者:行者123 更新时间:2023-11-30 16:56:18 25 4
gpt4 key购买 nike

好吧,我问了这个question昨天并根据我指出的方向对其进行了修改。当列表中有项目时,它会按照我想要的方式工作,但是当有 0 时,它会评估为 false,所以 or 无论如何都会启动。我不希望我需要它在项目计数为 0 时显示 0.00。我知道 0=false 这就是 or 起作用的原因。有什么帮助/解决方法吗?

var dropResult;
$(function (){
$(".t").click(function(){
dropResult = $("input[name=drop]:checked").val();
dropCalculate();
});
});

function dropCalculate() {
var pricesObj = {
'0':0,
'1':450
};
var dropAmount = $(".itemadd", "#items").length;
$("#dropAmount").html("Total: " + dropAmount);
if (dropResult == 1) {
dropTotal = (pricesObj[dropAmount] * dropAmount) || 450 + (150 * dropAmount - 150);
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}else {
dropTotal = (pricesObj[dropAmount] * dropAmount / 2) || 225 + (75 * dropAmount - 75);
$("#dropPrice").html("Price Total: $" + dropTotal.toFixed(2));
}
}

最佳答案

您可能会在 Code Review Stack Exchange 得到更好的回应在您没有直接问题但觉得可以改进代码设计的问题上。

以下代码应该与您示例中的代码执行相同的操作,但我认为它更具可读性。这个用例似乎不需要对象,但将来可能会有用。

再次,我应用了 DRY Principle ,这次我删除了 Magic Numbers (代码中的数字没有立即明确的含义)。

var dropResult;
$(function (){
$(".t").click(function(){
dropResult = $("input[name=drop]:checked").val();
dropCalculate(450);
});
});

function dropCalculate(fullPrice) {
var halfPrice = fullPrice / 2,
quarterPrice = halfPrice / 2,
dropAmount = $(".itemadd", "#items").length,
finalPrice = 0.00;

if(dropAmount > 0){
if (dropResult === 1) {
finalPrice = fullPrice; //the rest of this line was not necessary, as dropAmount - 1 is always 0 here.
} else {
finalPrice = halfPrice + (quarterPrice * (dropAmount - 1));
}
}

$("#dropAmount").html("Total: " + dropAmount);
$("#dropPrice").html("Price Total: $" + finalPrice.toFixed(2));
}

关于javascript - 定价变化 v2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29680499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com