I have a var a;
Its value can be NaN, null and any +ve/-ve number including 0.
I require a condition which filters out all the values of a such that
I had the same problem some weeks ago, I solved it with:
if(~~Number(test1)>0) {
//...
}
http://jsfiddle.net/pT7pp/2/
Ohk ...But i actually found the ans .. it is so Simple .
parseInt(null) = NaN.
So if(parseInt(a)>=0){}
would do ...Yayyee
This seems to work well:
if (parseFloat(x) === Math.sqrt(x*x))...
Test:
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
is not >= 0
, so the only exclusion you need to make is for null
:
if (a !== null && a >= 0) {
...
}
typeof x == "number" && x >= 0
This works as follows:
null
-- typeof null == "object"
so first part of expression returns falseNaN
-- typeof NaN == "number"
but NaN
is not greater than, less than or equal to any number including itself so second part of expression returns falsenumber
-- any other number
greater than or equal to zero the expression returns trueSince you tagged jQuery, take a look at $.isNumeric()
if($.isNumeric(a) && a >= 0)