9

var a; があります。

その値はNaN, null and any +ve/-ve number including 0.

>=0 の値のみが if 条件で true になるように、a のすべての値を除外する条件が必要です。

これを達成するための最善の方法は何ですか。3つの異なる条件を組み合わせて使用​​したくありません||

4

7 に答える 7

9
typeof x == "number" && x >= 0

これは次のように機能します。

  • null--typeof null == "object"したがって、式の最初の部分は false を返します
  • NaN--typeof NaN == "number"ただしNaN、それ自体を含む任意の数値より大きくないか、それ以下ではないため、式の 2 番目の部分は false を返します
  • numbernumber--ゼロ以上のその他の式は true を返します
于 2013-05-10T07:48:56.020 に答える
1

これはうまくいくようです:

if (parseFloat(x) === Math.sqrt(x*x))...

テスト:

isPositive = function(x) { return parseFloat(x) === Math.sqrt(x*x) }
a = [null, +"xx", -100, 0, 100]
a.forEach(function(x) { console.log(x, isPositive(x))})
于 2013-05-10T07:47:08.530 に答える
1

NaNは ではない>= 0ため、除外する必要があるのは のみですnull:

if (a !== null && a >= 0) {
    ...
}
于 2013-05-10T07:48:02.047 に答える
1

これらの値を除外するための私の最善の解決策は、2つの条件を使用することです。

 if(a!=undefined && a>=0){
      console.log('My variable is filtered out.')
    }

よくわかりませんが、それを作るための単一の条件の使用法はありません。

于 2013-05-10T07:48:15.513 に答える
0

jQueryにタグを付けたので、見てください$.isNumeric()

if($.isNumeric(a) && a >= 0)
于 2013-05-10T08:00:09.043 に答える