誰かがreverse
varを二重否定する目的を以下のコードで説明できますか?意味[-1,1] [+ !! boolean_var]
return function (a,b) {
var A = key(a), B = key(b);
return ((A < B) ? -1 :
(A > B) ? +1 : 0)) * [-1,1][+!!reverse];
}
私はそれを理解する方法は、目的は、乗算でそれを使用する[-1,1]
配列から適切なインデックスを選択することですが、[-1,1][+!!reverse];
が安全[-1,1][+reverse];
アム置き換えることができるように私には思えます間違ってる? reverse
をダブルネゲートすることで、何を得るか、防ぐのですか?
私は最も簡単な答えはおそらく反例であるthis answer.
これは素晴らしいです。 –
これは逆の値をブール値に変更します。 [何ですか。 (not?)JavaScriptの演算子ですか?](http://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript) – Mizuho
私は '(reverse?1:-1 ) 'ではなく[[-1,1] [+ !! reverse]'の代わりにIMOはもっと安く、配列オブジェクトとインデックスにアクセスする必要はなく、ブール変換も暗黙のうちに行われます。条件付き演算子... – CMS