这是一个课堂项目,我是一年级学生。我正在制作一个税收程序,一个函数计算该值所属的税收范围,下一个函数将格式化该值,连接美元符号,用.toFixed(2)
加小数点并使用{{1}添加适当的逗号}。我只是想获取要通过.toLocaleString()
函数的值,因此我可以继续其余的代码。练习很简单,但要进行新的练习就很难。任何帮助将不胜感激,我再次希望该值通过第二个函数,以便我可以继续进行其余的编码,j
formatMoney()
答案 0 :(得分:1)
我相信您正在寻找的代码如下。让我解释。此console.log(calculateTax(100));
线通过调用开始处理calculateTax
,并传递100
作为initAmount
参数。然后,代码将通过您的calculateTax
函数运行。当它完成后计算的金额,它传递的是量formatMoney
,这使得它非常(我只是做了一些代码,如果你想好了格式化,检查here)。
//Example
console.log(calculateTax(100));
function calculateTax(initAmount) {
let tax1 = .20;
let tax2 = .15;
let tax3 = .05;
if (initAmount <= 5) {
money = ((initAmount * tax1) + initAmount);
} else if (initAmount <= 100) {
money = ((initAmount * tax2) + initAmount)
} else if (initAmount >= 100.01) {
money = ((initAmount * tax3) + initAmount);
} else if (Number.isNaN(initAmount)) {
money = ("Invalid");
}
let formattedMoney = formatMoney(money);
return (formattedMoney);
}
function formatMoney(money) {
let formattedMoney = '$' + money;
return formattedMoney;
}
答案 1 :(得分:0)
您只需使嵌套函数反转即可。这段代码:
calculateTax(formatMoney(money));
说来传递的值money
到formatMoney
功能,其结果传送到calculateTax
功能。
您大概是相反的意思。您要将calculateTax
函数的结果传递给formatMoney
一个:
formatMoney(calculateTax());
并且大概会返回一个字符串-即使您现在仅使用console.log
,所以您也希望将结果存储在变量中:
let displayAmount = formatMoney(calculateTax());
那应该可以解决您眼前的问题,但是如果您有兴趣,您可能还要解决两个问题:
您把isNaN
检查在最后。通常最好的做法是把这样警卫前面。
您的calculateTax
函数声明了参数money
,但是您永远不会使用它,只需在if-else
块中重新定义即可。这也不是一个好习惯。使用局部变量会更好。 (let number;
)。或者更好的方法是,您可以将prompt
放在函数之外,然后将该值传递给calculateTax
。这使calculateTax
函数更具可测试性,并且意味着您的代码更具模块化。