2016-07-15 18 views
-2

私はJSを使用してフォームの入力を計算しています。私は、ログインしたユーザのタイプとフィールドに入力した値に基づいて、いくつかのIF文を使用しています。次のように要約するIF文をIF文で使用する

は、式が構成されています

ログインしているユーザIF管理者または貢献者で、実行式1 そうでなければ、利用者が加入者の実行式2

ある場合、私はしたいですログインしたユーザーが「顧客」の場合、実行率3などの3番目のルールを追加します。

私が直面している課題は、新しいバリエーションに対応するIF文とその配置場所を知っていることです。最初の公式の後に?

は、ここで私がこれまで持っているものです。

(function(){ 
if(fieldname152=='administrator','contributor') return IF((fieldname130<=1000),(fieldname130)*50.40/1000,IF(fieldname130<=10000,(fieldname130)*50.40/1000,IF(fieldname130<=50000,(fieldname130)*50.90/1000,IF(fieldname130<=500000,(fieldname130)*50.45/1000)))); 
else if(fieldname152=='subscriber') return IF((fieldname130<=1000),(fieldname130)*49.40/1000,IF(fieldname130<=10000,(fieldname130)*49.40/1000,IF(fieldname130<=50000,(fieldname130)*48.90/1000,IF(fieldname130<=500000,(fieldname130)*48.45/1000)))); 
})() 

任意の助けいただければ幸いです。

S

+1

非常に読みやすいではありません、あなたがアップneatenすることができますコードは少しですか? –

+0

は申し訳ありませんが、私は自分自身が、それは次のようにする必要があります質問をanweredました: (関数(){ をIF((fieldname152、[ '管理者'、 '貢献']))では { /**管理者と貢献者のためのコード**/ }(fieldname152 == 'role_a')場合role_aため {/ ** **コード/ } (fieldname152 == 'role_b')場合 { /** role_b **のコード/ } })() –

+0

この記事では、 'もし... else'より良い:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else – edmundo

答えて

1

あなたは

function calculateValue(userType, value) 
{ 
    var multiplier = 0; 
    switch(userType) 
    { 
    case "administrator": 
    case "contributor": 
     if (value > 5000000) 
     { 
     multiplier = 50.45; 
     } else if (value > 50000) 
     { 
     multiplier = 50.9 
     } else if (value > 1000) 
     { 
     multiplier = 50.4 
     } 
     break; 
    case "user": 
     // Put your value calculations here 
     break; 
    default: 
     // This is for users other than admin, contrib or user 
     if (value > 5000000) 
     { 
     multiplier = 48.45; 
     } else if (value > 50000) 
     { 
     multiplier = 48.9; 
     } else if (value > 1000) 
     { 
     multiplier = 49.4; 
     } 
    } // end case 
    return value * (multiplier/1000); 

} 

を次のように次のように次に、あなたはそれを呼び出すことができ、このコードより良い分割までのようになります。

var fieldname152 = 'administrator'; 
var fieldname130 = 500; 

var result = calculateValue(fieldname152, fieldname130);