【问题标题】:Getting a value for x depending on y根据 y 获取 x 的值
【发布时间】:2018-03-17 17:51:02
【问题描述】:

我正在尝试根据用户输入的 y 将 x 设置为某个值。 用户可以输入 y 值,但我的功能不打印 x。 有人有什么想法吗?我什么都没找到。

var y = 12;
var x = paymentfrequency()

function paymentfrequency() {
  if (y = year) {
    x = 1;
  }
  if (y = quarter) {
    x = 4;
  }
  if (y = month) {
    x = 12;
  }
  if (y = fortnight) {
    x = 26;
  }
  if (y = week) {
    x = 52;
  }
  return x = 0
}

document.getElementById("output").innerText = x;
<b>The text is: </b><span id="output"> </span>

【问题讨论】:

  • = 设置一个值....
  • 您是否在其他任何地方定义了year、quarter、month、fortnight 和week?
  • 你为什么返回x=0?
  • @Booligoosh 是的,定义了年、季度、月、两周和周,并且 y 确实显示了这 5 个选项之一的结果
  • 请edit您的问题显示所有的相关代码。

标签: javascript html function var


【解决方案1】:

试试这个(假设已经定义了年、季度、月、两周和周):

<!DOCTYPE html>
<html>
<body>

<b>The text is: </b><span id="output"> </span>

<script>

 var y = 12;
  var x = paymentfrequency()

  function paymentfrequency() {
    var out;
    if (y == year) { out = 1;
    } if (y == quarter) {out = 4;
    } if (y == month) {out = 12;
    } if (y == fortnight) {out = 26;
    } if (y == week) {out = 52;
    } return(out);
  }

document.getElementById("output").innerText = x;

</script>
</body>
</html>

【讨论】:

    【解决方案2】:

    至少,您应该在if 语句中使用=== 而不是=。 === 测试相等并返回 true 或 false; = 是赋值运算符,这意味着 y 在第一个 if 语句中被设置为 year。

    同样,该函数返回x = 0,它将x 设置为0,无论您在它之前运行什么代码。要么在每个if 语句中返回x,这样就不会总是到达最终的return,或者在开始时将x 设置为等于0,然后无论如何都返回它。 (这是假设您希望将 x 设置为 0,如果其他 if 语句都不为真。)

    我建议修复这两个错误,如果您的输出仍未正确显示,请创建一个新问题。希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您有几个问题= 设置一个值== 松散地比较一个值,=== 严格比较一个值(类型必须相同)。关于== 和=== 之间的区别的文章很多。

      接下来你总是返回x=0,这真的没有意义。

      继续...您的每个if 语句都会被评估。最好使用if.elseif..else 语句甚至更好的switch。

      最后,最好不要尝试在函数之外使用变量,最好将其作为参数传递。

      所以,尽你所能

      <!DOCTYPE html>
      <html>
      <body>
      
      <b>The text is: </b><span id="output"> </span>
      
      <script>
      
       var y = 12;
        var x = paymentfrequency(y)
      
        function paymentfrequency(input) {
          var out;
          //Assuming year, month, quater etc are global variables set else where
          switch(input) 
          {
             case year:
                out = 1;
                break;
             case quarter:
                out = 4;
                break;
             case month:
                out = 12;
                break;
             case  fortnight:
                out = 26;
                break;
             case week:
                out = 52;
                break;
             default:
                out = 0;
                break;
          } 
      
          return(out);
        }
      
      document.getElementById("output").innerText = x;
      
      </script>
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-02
        • 1970-01-01
        • 1970-01-01
        • 2018-06-09
        • 1970-01-01
        相关资源
        最近更新 更多