将一个功能传递给税务程序中的另一个功能

时间:2019-02-01 18:48:45

标签: javascript

这是一个课堂项目,我是一年级学生。我正在制作一个税收程序,一个函数计算该值所属的税收范围,下一个函数将格式化该值,连接美元符号,用.toFixed(2)加小数点并使用{{1}添加适当的逗号}。我只是想获取要通过.toLocaleString()函数的值,因此我可以继续其余的代码。练习很简单,但要进行新的练习就很难。任何帮助将不胜感激,我再次希望该值通过第二个函数,以便我可以继续进行其余的编码,j

formatMoney()

2 个答案:

答案 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));

说来传递的值moneyformatMoney功能,其结果传送到calculateTax功能。

您大概是相反的意思。您要将calculateTax函数的结果传递给formatMoney一个:

formatMoney(calculateTax());

并且大概会返回一个字符串-即使您现在仅使用console.log,所以您也希望将结果存储在变量中:

let displayAmount = formatMoney(calculateTax());

那应该可以解决您眼前的问题,但是如果您有兴趣,您可能还要解决两个问题:

  • 您把isNaN检查在最后。通常最好的做法是把这样警卫前面。

  • 您的calculateTax函数声明了参数money,但是您永远不会使用它,只需在if-else块中重新定义即可。这也不是一个好习惯。使用局部变量会更好。 (let number;)。或者更好的方法是,您可以将prompt放在函数之外,然后将该值传递给calculateTax。这使calculateTax函数更具可测试性,并且意味着您的代码更具模块化。