var a; があります。
その値はNaN, null and any +ve/-ve number including 0.
>=0 の値のみが if 条件で true になるように、a のすべての値を除外する条件が必要です。
これを達成するための最善の方法は何ですか。3つの異なる条件を組み合わせて使用したくありません||
var a; があります。
その値はNaN, null and any +ve/-ve number including 0.
>=0 の値のみが if 条件で true になるように、a のすべての値を除外する条件が必要です。
これを達成するための最善の方法は何ですか。3つの異なる条件を組み合わせて使用したくありません||
typeof x == "number" && x >= 0
これは次のように機能します。
null
--typeof null == "object"
したがって、式の最初の部分は false を返しますNaN
--typeof NaN == "number"
ただしNaN
、それ自体を含む任意の数値より大きくないか、それ以下ではないため、式の 2 番目の部分は false を返しますnumber
number
--ゼロ以上のその他の式は true を返しますこれはうまくいくようです:
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))})
NaN
は ではない>= 0
ため、除外する必要があるのは のみですnull
:
if (a !== null && a >= 0) {
...
}
これらの値を除外するための私の最善の解決策は、2つの条件を使用することです。
if(a!=undefined && a>=0){
console.log('My variable is filtered out.')
}
よくわかりませんが、それを作るための単一の条件の使用法はありません。
jQueryにタグを付けたので、見てください$.isNumeric()
if($.isNumeric(a) && a >= 0)