2017-02-07 8 views
0

私は2つの引数の間でより低い引数を返す私自身の関数を書いています。なぜ関数がブール値を返すのですか?

function min(a, b) { 
    if (a < b) 
    return a; 
    else 
    return b; 
} 

console.log(min(0, 10)); 
// → 0 

しかし、私はそれを単純化したいともう一つの機能を書いた:

私の最初のソリューションでした私の第二の機能は、ブール値の代わりに数を返すのはなぜ

function min(a, b) { 
    return a ? a < b : b; 
} 
console.log(min(0, 10)); 
// → true 

を?この動作を変更することはできますか?

+0

'すべきですか? a zerkms

+0

'この動作を変更することはできますか? ' - 変更する必要があるのは、'状態? whentruthy:whenfalsey'がうまくいく:p –

+0

* a *が0の場合、それは偽ですので 'a? a RobG

答えて

2

それは

function min(a, b) { 
    return a < b ? a : b; 
} 
console.log(min(0, 10)); 
1

あなたの三元operaterは少しファンキーであるべきです。

それはそうあなたがa ? boolean : bをやっていると私はそれが実際に変わるかわからないんだけどboolean ? returnValueForTrue : returnValueForFalse;

でなければなりません。 a ? booleanはブール値に変わります。

だから、あなたは

return a < b ? a : b;

関連する問題