-1

数か月前のインタビューでこの質問を見たことがありますが、自分の答えを確認したかったのです。

(私の回答を明確にするために、過去のインタビューの質問のブログ投稿を書いています。)

if (foo) { bar.doSomething(el); }
else { bar.doSomethingElse(el); }

答え:

foo ? bar.doSomething(el) : bar.doSomethingElse(el);
4

1 に答える 1

2

このように書くこともできます (少し読みにくいですが):

(foo ? bar.doSomething : bar.doSomethingElse)(el);

または、病的なものでさえ、短いですが:

bar[foo ? 'doSomething' : 'doSomethingElse'](el);

これは(あなたの例では)次のようにさらに凝縮できます。

bar['doSomething' + (foo ? '' : 'Else')](el);

そして、本当に条件を取り除きたい場合は、次のような卑劣なことをすることができます:

bar[['doSomething', 'doSomethingElse'][+!!foo]](el);
于 2013-06-05T04:36:35.717 に答える