2016-10-26 8 views
2

三項演算子のif/else内で複数の演算を行うことは可能ですか?三元演算子での複数演算

私は以下の例を考え出しましたが、おそらく最良の例ではありませんが、私があなたが意味するものを得ることを願っています。以下のようなものに

var totalCount = 0; 
var oddCount = 0; 
var evenCount = 0; 
for(var i = 0; i < arr.length; i++) { 
    if(arr[i] % 2 === 0) { 
    evenCount ++; 
    totalCount ++; 
    } else { 
    oddCount ++; 
    totalCount ++; 
    } 
} 

var totalCount = 0; 
var oddCount = 0; 
var evenCount = 0; 
for(var i = 0; i < arr.length; i++) { 
    arr[i] % 2 === 0? evenCount ++ totalCount ++ : oddCount ++ totalCount ++; 
    } 
} 
+0

http://stackoverflow.com/questions/6678411/javascript-ternary-operator-with-multiple-statements – Mahi

+2

他のプログラマを混乱させる必要がある場合は、これが方法です。 – buffjape

答えて

5

あなたは、単一の式の代わりに複数の式を実行するためにcomma operatorを使用することができます。

arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++); 

コンマ演算子の結果は結果であり、最後の式の

しかし、ええ、副作用の条件演算子を使用しないでください。