2017-10-06 125 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>