Javascript AddWithSource练习备选答案

Javascript AddWithSource练习备选答案,javascript,Javascript,我在jshero.net上做了以下JavaScript练习: 编写一个函数addWithSource,将两个金额加上附加费。每少于或等于10的金额,附加费为1。对于大于10且小于或等于20的每个金额,附加费为2。每超过20美元,附加费为3美元。调用addWithSource10、30应返回44 我的解决办法是: function addWithSurcharge (a,b){ let myS = a+b if (myS <10){ return myS +=2} else if (m

我在jshero.net上做了以下JavaScript练习: 编写一个函数addWithSource,将两个金额加上附加费。每少于或等于10的金额,附加费为1。对于大于10且小于或等于20的每个金额,附加费为2。每超过20美元,附加费为3美元。调用addWithSource10、30应返回44

我的解决办法是:

function addWithSurcharge (a,b){
let myS = a+b
if (myS  <10){
return myS  +=2} else if  (myS >10 && myS  <=20){
return myS  +=2} else if (myS >20 && myS <30){
return myS +=3} else if (myS >= 30 && myS <40){
return myS +=4} else if(myS >40){
return myS +=5}
}
不知怎么的,它起了作用,我通过了挑战,但我觉得有一个更简单的方法来解决这个问题。你知道这个练习的其他备选答案吗?

你可以把它写成switch语句。大概是这样的:

function addWithSurcharge (a,b) {
  let myS = a+b
  switch (true){
    case myS < 10:
      return myS + 2
    case (myS > 10 && myS <= 20):
      return myS + 2
    case (myS > 20 && myS < 30):
      return myS + 3
    case (myS >= 30 && myS < 40):
      return myS + 4
    default:
      return myS + 5
  }
}
你可以把它写成switch语句。大概是这样的:

function addWithSurcharge (a,b) {
  let myS = a+b
  switch (true){
    case myS < 10:
      return myS + 2
    case (myS > 10 && myS <= 20):
      return myS + 2
    case (myS > 20 && myS < 30):
      return myS + 3
    case (myS >= 30 && myS < 40):
      return myS + 4
    default:
      return myS + 5
  }
}

我想你可以把十年四舍五入,然后除以10。 我很惊讶你通过了测试,因为你不太适合这个问题,你忘记了每一个等于10,20,30

顺便说一下,这是我回答你问题的方法。通过这种方式,它是无限的,但是如果您不想在40之后停止添加,只需添加Math.maxX,decorounded/10,其中X是您的最大值,例如Math.max5,decorounded/10

带电源a、b的功能添加{ 设myS=a+b 设decadeRounded=Math.round myS/10*10; 返回myS+decorunded/10; } document.getElementById'result'.innerHTML=addWithSource10,20;
我想你可以把十年四舍五入,然后除以10。 我很惊讶你通过了测试,因为你不太适合这个问题,你忘记了每一个等于10,20,30

顺便说一下,这是我回答你问题的方法。通过这种方式,它是无限的,但是如果您不想在40之后停止添加,只需添加Math.maxX,decorounded/10,其中X是您的最大值,例如Math.max5,decorounded/10

带电源a、b的功能添加{ 设myS=a+b 设decadeRounded=Math.round myS/10*10; 返回myS+decorunded/10; } document.getElementById'result'.innerHTML=addWithSource10,20;
我现在这样做了,并得到以下错误消息:赋值中的左侧无效。读取代码时出错!测试错误!更正错误并重新运行测试!我忘了提到这是一个else if挑战。但它并没有说强制使用else-if语句。仍然不起作用。现在错误是addWithSource1,1不返回4,但返回false。测试错误!更正错误并重新运行测试!。有什么问题吗?@DefNotBruceWayne请立即尝试,抱歉。有一些括号用错了,对不起,同样的错误不断出现。addWithSource1,1不返回4,而是返回7。测试错误!更正错误并重新运行测试!。我现在这样做了,并得到以下错误消息:赋值中的左侧无效。读取代码时出错!测试错误!更正错误并重新运行测试!我忘了提到这是一个else if挑战。但它并没有说强制使用else-if语句。仍然不起作用。现在错误是addWithSource1,1不返回4,但返回false。测试错误!更正错误并重新运行测试!。有什么问题吗?@DefNotBruceWayne请立即尝试,抱歉。有一些括号用错了,对不起,同样的错误不断出现。addWithSource1,1不返回4,而是返回7。测试错误!更正错误并重新运行测试!。这非常接近于要求改进工作代码,这是关于堆栈溢出的主题外的,在主题上是。这非常接近于要求改进工作代码,这是关于堆栈溢出的主题外的,在主题上是。