2017-10-06 122 views
-4

我试图将x设置为某个值,具体取决于用户输入y的值。 用户可以输入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>

+5

=设置一个值.... – epascarello

+1

是否定义'year','quarter','month','fortnight'和'week'其他地方? – Booligoosh

+1

你为什么要返回'x = 0'? –

回答

0

试试这个(假设年,季,月,两周和一周已被定义):

<!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> 
0

最起码,你应该用===代替=if声明中。 ===测试结果是否相等,并返回truefalse; =是赋值运算符,这意味着y在第一个if语句中设置为year

同样,该函数返回x = 0,该函数将x设置为0,而不管您之前运行的任何代码如何。要么在每个if声明中返回x,以便最后的return不总是到达,或者在开始时将x设置为等于0,然后无论结束什么都返回。 (这是假设你想x如果没有其他if说法是正确的设置为0。)

我建议您修复这两个错误,如果你的输出仍然无法正常显示,创建一个新的问题。希望这可以帮助。

0

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

接下来你总是会返回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>