2016-12-15 7 views
1

2つのパラメータを使用してこのコードを通常の状態に単純化する方法を教えてください。ありがとうございました!この論理は私のためには非常に必要です、私はあなたの寛容に願っています。スイッチケースjs 2つのパラメータ

var treshhold_two = 0; 

function Test(attack, ratio) { 
    switch (attack) { 
    case 0,01: 
     switch (ratio) { 
     case 2: 
      treshhold = 2798,6; 
      break; 
     case 4: 
      treshhold = 3678,16; 
      break; 
     case 6: 
      treshhold = 5757,12; 
      break; 
     } 
     break; 
    case >0,01: 
     switch (attack, ratio) { 
     case 0,03,2: 
      treshhold = -5,75712; 
      break; 
     case 0,03,4: 
      treshhold = -5,75712 * 1,1; 
      break; // -45% 
     case 0,03,6: 
      treshhold = -5,75712 * 0,96; 
      break; // -52%, and etc. 
     ... 
     } 
     break; 
    } 
} 
+0

'if'ステートメントを使用しないのはなぜ? –

答えて

1

試してみてください。

var treshhold_two = 0; 

function Test(attack, ratio) { 
    if(attack == 0,01) { 
    switch (ratio) { 
     case 2: 
      treshhold = 2798,6; 
      break; 
     case 4: 
      treshhold = 3678,16; 
      break; 
     case 6: 
      treshhold = 5757,12; 
      break; 
     } 
    } 
    else {   
     switch (attack) { 
     case 0,03: 
       if(ratio==2) treshhold = -5,75712;     
       if(ratio==4) treshhold = -5,75712 * 1,1;        
       if(ratio==6) treshhold = -5,75712 * 0,96;     
       break; 
     ... 
     }   
    } 
} 
0
var treshhold_two = 0; 

function Test(attack, ratio) { 
    if (attack == 0.01) { 
     switch (ratio) { 
     case 2: 
      treshhold = 2798.6; 
      break; 
     case 4: 
      treshhold = 3678.16; 
      break; 
     case 6: 
      treshhold = 5757.12; 
      break; 
     } 
    } 
    else if (attack > 0.01) { 
     switch (attack, ratio) { 
     case 0,03,2: // what does it mean ? 
      treshhold = -5.75712; 
      break; 
     case 0,03,4: // what does it mean ? 
      treshhold = -5.75712 * 1.1; 
      break; // -45% 
     case 0,03,6: // what does it mean ? 
      treshhold = -5.75712 * 0.96; 
      break; // -52%, and etc. 
     ... 
     } 
    } 
} 
+0

問題は、これは、ユーザーが設定を切り替えることができるため、これが連続したサイクルとして機能することです。 case 0,03,2:// 0.03 - attcack、2 - ratio –

0
//option:1 

    var treshhold = 0; 

    function Test(attack, ratio) { 
     switch (attack) { 
     case 0,01: 
       if(ratio==2) treshhold = 2798,6;    
      if(ratio==4) treshhold = 3678,16;       
      if(ratio==6) treshhold = 5757,12; 
      break; 
     case 0,03: 
      if(ratio==2) treshhold = -5,75712;    
      if(ratio==4) treshhold = -5,75712 * 1,1;       
      if(ratio==6) treshhold = -5,75712 * 0,96; 
      break; 
      // ... 
      } 
     } 
    } 


    //option:2 

    var treshhold = 0; 

    function Test(attack, ratio) { 
     switch (attack) { 
     case 0,01: 
      switch (ratio) { 
      case 2: treshhold = 2798,6; break; 
      case 4: treshhold = 3678,16; break; 
      case 6: treshhold = 5757,12; break; 
      } 
     case 0,03: 
      switch (ratio) { 
      case 2: treshhold = -5,75712; break; 
      case 4: treshhold = -5,75712 * 1,1; break; 
      case 6: treshhold = -5,75712 * 0,96;; break; 
      } 
     // ... 
      } 
    } 

//オプション:3

var treshhold = 1223456; 

function Test(ratio, attack) { 
    switch (ratio) { 
    case 2: 
     switch (attack) { 
     case 0,01: ... break; 
     case 0,03: ... break; 
     case 0,1: ... break; 
     } 
     break; 
    case 4: 
     switch (attack) { 
     case 0,01: ... break; 
     case 0,03: ... break; 
     case 0,1: ... break; 
     } 
     break; 
    case 6: 
     switch (attack) { 
     case 0,01: ... break; 
     case 0,03: ... break; 
     case 0,1: ... break; 
     } 
     break; 
} 


// option? 
関連する問題