2012-11-14 74 views
0

我得到了下面的代碼從一個JavaScript庫:的Javascript三元操作順序

function func_1() 
{ 
    if (null == decimal) 
    { 
     return dPR || (dpr(2) ? 2 : dpr(1.5) ? 1.5 : dpr(1) ? 1 : 0); 
    } 
} 

我在if語句中的代碼特別感興趣。

我該怎麼寫這個以便它更容易閱讀?現在我無法理解它。

謝謝。

+0

給出有意義的名稱常量和不使用一些隨機的首字母縮寫。 – Esailija

+0

發佈您的所有代碼。我相信它缺少一些定義。 –

回答

4

它等同於:

if (dPR) { 
    return dPR; 
} else { 
    if (dpr(2)) { 
     return 2; 
    } else { 
     if (dpr(1.5)) { 
      return 1.5; 
     } else { 
      if (dpr(1)) { 
       return 1; 
      } else { 
       return 0; 
      } 
     } 
    } 
} 
0
if (decimal == null) { 

    if (dPR) { 

     return dPR; 

    } else { 

     if (dpr(2)) { 

      return 2; 

     } else if (dpr(1.5)) { 

      return 1.5; 

     } else if (dpr(1)) { 

      return 1; 

     } else return 0; 

    } 

} 
+0

這是不正確的,你的代碼中有兩個else分支。 –

+0

@DavidMüller固定。 – 0x499602D2

1
if (dPr) { 
    return dPr; 
} 
else { 
    if (dpr(2)) 
     return 2 
    else if (dpr(1.5)) 
     return 1.5; 
    else if (dpr(1)) 
     return 1; 
    else 
     return 0; 
} 
+0

謝謝大衛。這實際上更接近我的大腦想要處理的問題。 –