2017-10-06 17 views
-4

ユーザーがyを入力することによってxを特定の値に設定しようとしています。 ユーザーはy値を入力できますが、私の関数はxを出力していません。 誰でもアイデアがありますか?私は何かを見つけることができませんでした。xに応じてyの値を取得する

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ステートメントの====は同等かどうかをテストし、trueまたはfalseを返します。 =は代入演算子です。つまり、最初のifステートメントでyyearに設定されています。

同様に、この関数はx = 0を返します。これは、以前実行したコードに関係なく、x0に設定します。各ifステートメント内にxステートメントを返すと、最終的にreturnに到達するとは限りません。また、最初にを0に設定して、最後に戻してください。 (これは、あなたが他のif文のいずれにも該当しない場合x0に設定したいと仮定している。)

私は、これら2つのエラーを修正お勧めします、そして、あなたの出力は、まだ新しい質問を作成し、正しく表示されない場合。お役に立てれば。

0

あなたはいくつかの問題があります=は値を設定します。==は値を緩やかに比較し、===は値を厳密に比較します(型は同じでなければなりません)。 =====の違いについては、そこに記事のpleantyがあります。

次は常に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> 
関連する問題