gpt4 book ai didi

javascript - 正确总结if循环

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

我编写的Javascript代码是针对一个小商店网站的购物车的。我知道这段代码非常丑陋,我尝试用函数中的参数切换来总结它,但我没有得出有效的结论。缩短此代码的最佳方法是什么?

非常感谢!

Javascript:

var pack = '#writePackSummary';
var netPriceOutput = '.writeNetPriceSummary';
var taxPriceOutput = '#writeTaxPriceSummary';
var grossPriceOutput = '#writeGrossPriceSummary'
var netPrice1 = 25;
var netPrice3 = 45.55;
var netPrice6 = 89.10;
var tax = 0.19;

if ($(pack).text() == '1') {
$(netPriceOutput).text(netPrice1.toFixed(2).toString().replace(/\./g, ','));
$(taxPriceOutput).text((netPrice1*tax).toFixed(2).toString().replace(/\./g, ','));
$(grossPriceOutput).text(((netPrice1*tax)+netPrice1).toFixed(2).toString().replace(/\./g, ','));
} else if ($(pack).text() == '3') {
$(netPriceOutput).text(netPrice3.toFixed(2).toString().replace(/\./g, ','));
$(taxPriceOutput).text((netPrice3*tax).toFixed(2).toString().replace(/\./g, ','));
$(grossPriceOutput).text(((netPrice3*tax)+netPrice3).toFixed(2).toString().replace(/\./g, ','));
} else if ($(pack).text() == '6') {
$(netPriceOutput).text(netPrice6.toFixed(2).toString().replace(/\./g, ','));
$(taxPriceOutput).text((netPrice6*tax).toFixed(2).toString().replace(/\./g, ','));
$(grossPriceOutput).text(((netPrice6*tax)+netPrice6).toFixed(2).toString().replace(/\./g, ','));
};

最佳答案

对于初学者,您可以使用单个函数替换所有这些 .toFixed(2).toString().replace(/\./g, ','):

function stringNum(num) {return num.toFixed(2).replace(/\./g, ',')}

if ($(pack).text() == '1') {
$(netPriceOutput).text(stringNum(netPrice1));
$(taxPriceOutput).text(stringNum(netPrice1*tax));
$(grossPriceOutput).text(stringNum((netPrice1*tax)+netPrice1));
} etc...

也许考虑使用 switch 构造而不是多个 if-else?这也更快,因为它不会每次都重新创建 jQuery 对象。

关于javascript - 正确总结if循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22464368/

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